3 ms·
Gonna aggregate all the subtopics in one reply. > you should take a look at SGML I am aware that SGML is the ancestor of HTML and XML. I'm not sure there are
by nayuki 7y ago
Gonna aggregate all the subtopics in one reply.
> you should take a look at SGML
I am aware that SGML is the ancestor of HTML and XML. I'm not sure there are any popular software today that handle SGML syntax. Furthermore XML has fewer rules to remember than SGML. So I will largely ignore SGML, except for explaining why some behaviors went into HTML.
> The hard-coded tag soup parser is by no means "standard".
I believe HTML5 standardized the syntax/error handling for HTML (not XHTML) documents. It should mean that for any given document, every HTML5-compliant web browser - Chrome, Firefox, Edge, etc. - will parse it into the same DOM tree.
> Does every popular browser support [XHTML] in the same way?
Yes, XHTML mode is supported by IE 9+, all Firefox, all Chrome, all Safari, all Opera, and all mobile browsers on Android and iOS. https://caniuse.com/#feat=xhtml https://caniuse.com/#feat=xhtml
> I would expect some subtle differences, because this mode is not very popular and probably not as tested as standard HTML.
Indeed XHTML is very unpopular. There was one slight bug I encountered in Firefox about a year ago, where invalid XHTML pages would show a yellow error screen (correct) but with no error message text (this was a regression). That said, I'm pretty sure that the XML-parsing engine, XSLT, and related technologies are here to stay, so XHTML isn't at risk of losing support.
> On the contrary, part of the point of XHTML is you can reference the document type definition (DTD) so everyone would be on the same page.
That was the original intent in XHTML 1.0, 1.1, and 2.0. But anyway, nowadays the DTD is optional and probably unhelpful: https://stackoverflow.com/questions/38427011/does-xhtml5-require-a-doctype-dtd https://stackoverflow.com/questions/38427011/does-xhtml5-req...
>> The standard "tag soup" HTML parser has numerous surprising behaviors
> There is nothing surprising here.
So are you an expert at diagnosing HTML parsing and invalid syntax? I prefer not to be one, because I'd like the XML parser to yell at me loudly when I'm wrong, rather than helpfully try to fix my code the wrong way.
> if you dig deeper there are a lot more surprises in XHTML documents
Like what? I'll try to name a few: Namespaces (colons), character entities, CDATA sections, strict comments (rules about the substring "--").
> assuming they are served with the proper MIME type
Yes, I forgot to mention this. My website https://www.nayuki.io/ https://www.nayuki.io/ has been serving application/xhtml+xml for about a decade, and seems to work well with the browsers that the audience uses.