You shouldn't be using character offsets when parsing HTML or XML...
Your lexer emits buffer positions which you then put into error/diagnostic messages. Afaict, this tool makes it easier to visualize cursor positions in buffers. Personally, I'm not sure about its approach but it's not an unreasonable goal.
I parsed many strings from a website today. These strings were created by a user. So they didn't have a structure. It seemed easier to search for some keyword (like €/$) and extract substrings than writing a grammar.
Working with positions can be compilcated, so I created this little tool to visualize it and make it a bit more easy and to save some time.