From 58b61eef2a1d0a54081ef2e5c92a0ccd33ebd070 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Sat, 22 Jul 2023 20:41:11 -0700 Subject: [PATCH] New note: polygot xhtml5 --- content/notes/polygot-xhtml5.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 content/notes/polygot-xhtml5.md diff --git a/content/notes/polygot-xhtml5.md b/content/notes/polygot-xhtml5.md new file mode 100644 index 0000000..bc0b36d --- /dev/null +++ b/content/notes/polygot-xhtml5.md @@ -0,0 +1,18 @@ +--- +title: "Polygot XHTML5" +date: 2023-07-22T20:39:24-07:00 +syndicatedCopies: + - title: 'The Fediverse' + url: 'https://pleroma.envs.net/notice/AXyQMNhrMjeGLBrmim' +--- + +Why is my site's markup polygot XHTML5? I have had to deal with some really awful user-agents: + +- Bespoke markup parsers in RSS readers. +- Link previews in obscure messaging apps. +- A reader-mode bookmarklet-turned-browser-extension that hasn't been updated in twelve years. +- Various search engines trying to parse the page without using a compliant parser. + +Most of my issues were solved by running my generated markup through both `xmllint` (XML syntax) and the Nu HTML Checker (HTML5). Optional elements tend to cause issues the most. + +Overly-aggressive validation tends to spot latent bugs. Even if something is valid without an optional closing tag, I may have meant to include one in my templates. If that becomes an issue when I change something else later, it'll be hard to track down the bug when it passes more lax validation.