<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Jens Oliver Meiert</title>
    <description>The latest articles on Forem by Jens Oliver Meiert (@j9t).</description>
    <link>https://forem.com/j9t</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F224279%2F0e4a14d6-5810-47d2-9bca-0e8c0ead149e.jpg</url>
      <title>Forem: Jens Oliver Meiert</title>
      <link>https://forem.com/j9t</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/j9t"/>
    <language>en</language>
    <item>
      <title>On the Need for Neutral Maintained Minifier Metrics</title>
      <dc:creator>Jens Oliver Meiert</dc:creator>
      <pubDate>Tue, 27 Jan 2026 09:34:16 +0000</pubDate>
      <link>https://forem.com/j9t/on-the-need-for-neutral-maintained-minifier-metrics-5715</link>
      <guid>https://forem.com/j9t/on-the-need-for-neutral-maintained-minifier-metrics-5715</guid>
      <description>&lt;p&gt;To improve production performance, we use minifiers. For HTML, there are several HTML minifiers, with most being capable of minifying CSS and JavaScript as well.&lt;/p&gt;

&lt;p&gt;While we can measure how effective and fast these minifiers are, there are two problems:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;As they’re not all based on the same languages and don’t all offer the same interfaces, minifiers don’t all work the same. That is, they can be tricky to compare 1:1.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;While interestingly, pretty much every minifier provides metrics on how they compare (see &lt;a href="https://github.com/kangax/html-minifier?tab=readme-ov-file#minification-comparison" rel="noopener noreferrer"&gt;the original HTML Minifier&lt;/a&gt;, &lt;a href="https://github.com/terser/html-minifier-terser?tab=readme-ov-file#minification-comparison" rel="noopener noreferrer"&gt;HTML Minifier Terser&lt;/a&gt;, &lt;a href="https://github.com/j9t/html-minifier-next?tab=readme-ov-file#minification-comparison" rel="noopener noreferrer"&gt;HTML Minifier Next&lt;/a&gt;, &lt;a href="https://github.com/maltsev/htmlnano?tab=readme-ov-file#benchmarks" rel="noopener noreferrer"&gt;htmlnano&lt;/a&gt;, &lt;a href="https://github.com/wilsonzlin/minify-html?tab=readme-ov-file#performance" rel="noopener noreferrer"&gt;minify-html&lt;/a&gt;, &amp;amp;c.), these metrics are often inaccurate: Assuming no bias, they’re not always based on the latest minifier version and their latest capabilities.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What you can tell from this is that problem 1) is a general challenge—one that has led &lt;a href="https://meiert.com/" rel="noopener noreferrer"&gt;Jens&lt;/a&gt; to several reviews and improvements to &lt;a href="https://github.com/j9t/html-minifier-next?tab=readme-ov-file#minification-comparison" rel="noopener noreferrer"&gt;the benchmarks shared with HMN&lt;/a&gt;, and that &lt;a href="https://www.kirillmaltsev.net/" rel="noopener noreferrer"&gt;Kirill&lt;/a&gt; knows with &lt;a href="https://github.com/maltsev/html-minifiers-benchmark" rel="noopener noreferrer"&gt;his benchmarks overview&lt;/a&gt; as well—, and that 2) is an actual problem.&lt;/p&gt;

&lt;p&gt;2) is a problem because &lt;em&gt;unmaintained benchmarks don’t offer an accurate picture of the minifier landscape&lt;/em&gt;. Accordingly, they don’t actually enable you to make good decisions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Call for Neutral and Maintained Minifier Benchmarks
&lt;/h2&gt;

&lt;p&gt;What we believe we need is this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;A neutral steward—person or organization—who regularly publishes updated minifier benchmarks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Minifier maintainers could support this steward by informing about new features. (Assuming &lt;a href="https://meiert.com/blog/automated-dependency-management/" rel="noopener noreferrer"&gt;automated dependency management&lt;/a&gt;, that’s not necessary for general minifier updates.)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;The benchmarks should&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;be open and include as many HTML minifiers as possible
&lt;/li&gt;
&lt;li&gt;include a large and diverse range of sites to be tested
&lt;/li&gt;
&lt;li&gt;cover minification results &lt;em&gt;and&lt;/em&gt; processing time
&lt;/li&gt;
&lt;li&gt;in the case of HTML minifiers, consider comparing both HTML minification and “full” minification (enabling all other minification options these minifiers come with)
&lt;/li&gt;
&lt;li&gt;be updated at least every month
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;This is probably not all: As a community, we can all contribute to making this process better.&lt;/p&gt;

&lt;p&gt;The point is that as developers and minifier providers, we believe neutral, maintained minifier metrics are necessary when we’re actually in the great position of having several maintained minifiers that, excitingly, also apply different philosophies.&lt;/p&gt;

&lt;p&gt;Even if minifier maintainers do their best to provide unbiased, up-to-date comparisons, having a steward who takes care of this could provide a lot more value to all of us.&lt;/p&gt;

&lt;p&gt;Would this steward be you? Comment here or contact &lt;a href="https://meiert.com/contact/" rel="noopener noreferrer"&gt;Jens&lt;/a&gt; or &lt;a href="https://www.kirillmaltsev.net/" rel="noopener noreferrer"&gt;Kirill&lt;/a&gt; so that we’re aware and can help you get something started!&lt;/p&gt;

</description>
      <category>html</category>
      <category>minification</category>
      <category>minifiers</category>
      <category>metrics</category>
    </item>
    <item>
      <title>HTML Semantics: The Short Descriptions of All 113 Elements</title>
      <dc:creator>Jens Oliver Meiert</dc:creator>
      <pubDate>Wed, 10 Dec 2025 10:39:39 +0000</pubDate>
      <link>https://forem.com/j9t/html-semantics-the-short-descriptions-of-all-113-elements-2c7i</link>
      <guid>https://forem.com/j9t/html-semantics-the-short-descriptions-of-all-113-elements-2c7i</guid>
      <description>&lt;p&gt;When you look at HTML overviews (e.g., take &lt;a href="https://meiert.com/indices/html-elements/" rel="noopener noreferrer"&gt;the HTML elements index&lt;/a&gt; or &lt;a href="https://meiert.com/blog/rote-learning-html-and-css/" rel="noopener noreferrer"&gt;my free ebook listing all HTML elements and attributes&lt;/a&gt;), you get a quick sense of what HTML elements mean (i.e., &lt;a href="https://meiert.com/blog/on-semantics-in-html/" rel="noopener noreferrer"&gt;their semantics&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;But when you have a closer look, you may actually need more than “heading” or “hyperlink” to understand what an element represents.&lt;/p&gt;

&lt;p&gt;To provide a comprehensive semantics overview, here are &lt;a href="https://html.spec.whatwg.org/multipage/" rel="noopener noreferrer"&gt;the HTML spec’s&lt;/a&gt; first paragraphs for all the 113 HTML elements (&lt;a href="https://meiert.com/blog/the-number-of-html-elements/" rel="noopener noreferrer"&gt;that is&lt;/a&gt;, not including MathML and SVG):&lt;/p&gt;

&lt;dl&gt;
    &lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-a-element" rel="noopener noreferrer"&gt;&lt;code&gt;a&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;If the &lt;code&gt;a&lt;/code&gt; element has an &lt;code&gt;href&lt;/code&gt; attribute, then it represents a hyperlink (a hypertext anchor) labeled by its contents. If the &lt;code&gt;a&lt;/code&gt; element has no &lt;code&gt;href&lt;/code&gt; attribute, then the element represents a placeholder for where a link might otherwise have been placed, if it had been relevant, consisting of just the element’s contents.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-abbr-element" rel="noopener noreferrer"&gt;&lt;code&gt;abbr&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;abbr&lt;/code&gt; element represents an abbreviation or acronym, optionally with its expansion. The &lt;code&gt;title&lt;/code&gt; attribute may be used to provide an expansion of the abbreviation. The attribute, if specified, must contain an expansion of the abbreviation, and nothing else.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/sections.html#the-address-element" rel="noopener noreferrer"&gt;&lt;code&gt;address&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;address&lt;/code&gt; element represents the contact information for its nearest &lt;code&gt;article&lt;/code&gt; or &lt;code&gt;body&lt;/code&gt; element ancestor. If that is the &lt;code&gt;body&lt;/code&gt; element, then the contact information applies to the document as a whole.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/image-maps.html#the-area-element" rel="noopener noreferrer"&gt;&lt;code&gt;area&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;area&lt;/code&gt; element represents either a hyperlink with some text and a corresponding area on an image map, or a dead area on an image map.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/sections.html#the-article-element" rel="noopener noreferrer"&gt;&lt;code&gt;article&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;article&lt;/code&gt; element represents a complete, or self-contained, composition in a document, page, application, or site and that is, in principle, independently distributable or reusable, e.g. in syndication. This could be a forum post, a magazine or newspaper article, a blog entry, a user-submitted comment, an interactive widget or gadget, or any other independent item of content.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/sections.html#the-aside-element" rel="noopener noreferrer"&gt;&lt;code&gt;aside&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;aside&lt;/code&gt; element represents a section of a page that consists of content that is tangentially related to the content around the &lt;code&gt;aside&lt;/code&gt; element, and which could be considered separate from that content. Such sections are often represented as sidebars in printed typography.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/media.html#the-audio-element" rel="noopener noreferrer"&gt;&lt;code&gt;audio&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;An &lt;code&gt;audio&lt;/code&gt; element represents a sound or audio stream.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-b-element" rel="noopener noreferrer"&gt;&lt;code&gt;b&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;b&lt;/code&gt; element represents a span of text to which attention is being drawn for utilitarian purposes without conveying any extra importance and with no implication of an alternate voice or mood, such as key words in a document abstract, product names in a review, actionable words in interactive text-driven software, or an article lede.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/semantics.html#the-base-element" rel="noopener noreferrer"&gt;&lt;code&gt;base&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;base&lt;/code&gt; element allows authors to specify the document base URL for the purposes of parsing URLs, and the name of the default navigable for the purposes of following hyperlinks. The element does not represent any content beyond this information.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-bdi-element" rel="noopener noreferrer"&gt;&lt;code&gt;bdi&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;bdi&lt;/code&gt; element represents a span of text that is to be isolated from its surroundings for the purposes of bidirectional text formatting.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-bdo-element" rel="noopener noreferrer"&gt;&lt;code&gt;bdo&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;bdo&lt;/code&gt; element represents explicit text directionality formatting control for its children. It allows authors to override the Unicode bidirectional algorithm by explicitly specifying a direction override.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/grouping-content.html#the-blockquote-element" rel="noopener noreferrer"&gt;&lt;code&gt;blockquote&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;blockquote&lt;/code&gt; element represents a section that is quoted from another source.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/sections.html#the-body-element" rel="noopener noreferrer"&gt;&lt;code&gt;body&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;body&lt;/code&gt; element represents the contents of the document.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-br-element" rel="noopener noreferrer"&gt;&lt;code&gt;br&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;br&lt;/code&gt; element represents a line break.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/form-elements.html#the-button-element" rel="noopener noreferrer"&gt;&lt;code&gt;button&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;button&lt;/code&gt; element represents a button labeled by its contents.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/form-elements.html#the-button-element" rel="noopener noreferrer"&gt;&lt;code&gt;canvas&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;button&lt;/code&gt; element represents a button labeled by its contents.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/tables.html#the-caption-element" rel="noopener noreferrer"&gt;&lt;code&gt;caption&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;caption&lt;/code&gt; element represents the title of the &lt;code&gt;table&lt;/code&gt; that is its parent, if it has a parent and that is a &lt;code&gt;table&lt;/code&gt; element.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-cite-element" rel="noopener noreferrer"&gt;&lt;code&gt;cite&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;cite&lt;/code&gt; element represents the title of a work (e.g. a book, a paper, an essay, a poem, a score, a song, a script, a film, a TV show, a game, a sculpture, a painting, a theatre production, a play, an opera, a musical, an exhibition, a legal case report, a computer program, etc.). This can be a work that is being quoted or referenced in detail (i.e., a citation), or it can just be a work that is mentioned in passing. A person’s name is not the title of a work—even if people call that person a piece of work—and the element must therefore not be used to mark up people’s names.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-code-element" rel="noopener noreferrer"&gt;&lt;code&gt;code&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;code&lt;/code&gt; element represents a fragment of computer code. This could be an XML element name, a filename, a computer program, or any other string that a computer would recognize.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/tables.html#the-col-element" rel="noopener noreferrer"&gt;&lt;code&gt;col&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;If a &lt;code&gt;col&lt;/code&gt; element has a parent and that is a &lt;code&gt;colgroup&lt;/code&gt; element that itself has a parent that is a &lt;code&gt;table&lt;/code&gt; element, then the &lt;code&gt;col&lt;/code&gt; element represents one or more columns in the column group represented by that &lt;code&gt;colgroup&lt;/code&gt;.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/tables.html#the-colgroup-element" rel="noopener noreferrer"&gt;&lt;code&gt;colgroup&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;colgroup&lt;/code&gt; element represents a group of one or more columns in the &lt;code&gt;table&lt;/code&gt; that is its parent, if it has a parent and that is a &lt;code&gt;table&lt;/code&gt; element.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-data-element" rel="noopener noreferrer"&gt;&lt;code&gt;data&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;data&lt;/code&gt; element represents its contents, along with a machine-readable form of those contents in the &lt;code&gt;value&lt;/code&gt; attribute.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/form-elements.html#the-datalist-element" rel="noopener noreferrer"&gt;&lt;code&gt;datalist&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;datalist&lt;/code&gt; element represents a set of &lt;code&gt;option&lt;/code&gt; elements that represent predefined options for other controls. In the rendering, the &lt;code&gt;datalist&lt;/code&gt; element represents nothing and it, along with its children, should be hidden.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/grouping-content.html#the-dd-element" rel="noopener noreferrer"&gt;&lt;code&gt;dd&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;dd&lt;/code&gt; element represents the description, definition, or value, part of a term-description group in a description list (&lt;code&gt;dl&lt;/code&gt; element).
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/edits.html#the-del-element" rel="noopener noreferrer"&gt;&lt;code&gt;del&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;del&lt;/code&gt; element represents a removal from the document.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/interactive-elements.html#the-details-element" rel="noopener noreferrer"&gt;&lt;code&gt;details&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;details&lt;/code&gt; element represents a disclosure widget from which the user can obtain additional information or controls.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-dfn-element" rel="noopener noreferrer"&gt;&lt;code&gt;dfn&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;dfn&lt;/code&gt; element represents the defining instance of a term. The paragraph, description list group, or section that is the nearest ancestor of the &lt;code&gt;dfn&lt;/code&gt; element must also contain the definition(s) for the term given by the &lt;code&gt;dfn&lt;/code&gt; element.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/interactive-elements.html#the-dialog-element" rel="noopener noreferrer"&gt;&lt;code&gt;dialog&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;dialog&lt;/code&gt; element represents a transitory part of an application, in the form of a small window (“dialog box”), which the user interacts with to perform a task or gather information. Once the user is done, the dialog can be automatically closed by the application, or manually closed by the user.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/grouping-content.html#the-div-element" rel="noopener noreferrer"&gt;&lt;code&gt;div&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;div&lt;/code&gt; element has no special meaning at all. It represents its children. It can be used with the &lt;code&gt;class&lt;/code&gt;, &lt;code&gt;lang&lt;/code&gt;, and &lt;code&gt;title&lt;/code&gt; attributes to mark up semantics common to a group of consecutive elements. It can also be used in a &lt;code&gt;dl&lt;/code&gt; element, wrapping groups of &lt;code&gt;dt&lt;/code&gt; and &lt;code&gt;dd&lt;/code&gt; elements.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/grouping-content.html#the-dl-element" rel="noopener noreferrer"&gt;&lt;code&gt;dl&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;dl&lt;/code&gt; element represents an association list consisting of zero or more name-value groups (a description list). A name-value group consists of one or more names (&lt;code&gt;dt&lt;/code&gt; elements, possibly as children of a &lt;code&gt;div&lt;/code&gt; element child) followed by one or more values (&lt;code&gt;dd&lt;/code&gt; elements, possibly as children of a &lt;code&gt;div&lt;/code&gt; element child), ignoring any nodes other than &lt;code&gt;dt&lt;/code&gt; and &lt;code&gt;dd&lt;/code&gt; element children, and &lt;code&gt;dt&lt;/code&gt; and &lt;code&gt;dd&lt;/code&gt; elements that are children of &lt;code&gt;div&lt;/code&gt; element children. Within a single &lt;code&gt;dl&lt;/code&gt; element, there should not be more than one &lt;code&gt;dt&lt;/code&gt; element for each name.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/grouping-content.html#the-dt-element" rel="noopener noreferrer"&gt;&lt;code&gt;dt&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;dt&lt;/code&gt; element represents the term, or name, part of a term-description group in a description list (&lt;code&gt;dl&lt;/code&gt; element).
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-em-element" rel="noopener noreferrer"&gt;&lt;code&gt;em&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;em&lt;/code&gt; element represents stress emphasis of its contents.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-embed-element" rel="noopener noreferrer"&gt;&lt;code&gt;embed&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;embed&lt;/code&gt; element provides an integration point for an external application or interactive content.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/form-elements.html#the-fieldset-element" rel="noopener noreferrer"&gt;&lt;code&gt;fieldset&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;fieldset&lt;/code&gt; element represents a set of form controls (or other content) grouped together, optionally with a caption. The caption is given by the first &lt;code&gt;legend&lt;/code&gt; element that is a child of the &lt;code&gt;fieldset&lt;/code&gt; element, if any. The remainder of the descendants form the group.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/grouping-content.html#the-figcaption-element" rel="noopener noreferrer"&gt;&lt;code&gt;figcaption&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;figcaption&lt;/code&gt; element represents a caption or legend for the rest of the contents of the &lt;code&gt;figcaption&lt;/code&gt; element’s parent &lt;code&gt;figure&lt;/code&gt; element, if any.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/grouping-content.html#the-figure-element" rel="noopener noreferrer"&gt;&lt;code&gt;figure&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;figure&lt;/code&gt; element represents some flow content, optionally with a caption, that is self-contained (like a complete sentence) and is typically referenced as a single unit from the main flow of the document.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/sections.html#the-footer-element" rel="noopener noreferrer"&gt;&lt;code&gt;footer&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;footer&lt;/code&gt; element represents a footer for its nearest ancestor sectioning content element, or for the body element if there is no such ancestor. A footer typically contains information about its section such as who wrote it, links to related documents, copyright data, and the like. When the &lt;code&gt;footer&lt;/code&gt; element contains entire sections, they represent appendices, indices, long colophons, verbose license agreements, and other such content.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/forms.html#the-form-element" rel="noopener noreferrer"&gt;&lt;code&gt;form&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;form&lt;/code&gt; element represents a hyperlink that can be manipulated through a collection of form-associated elements, some of which can represent editable values that can be submitted to a server for processing.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/sections.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements" rel="noopener noreferrer"&gt;&lt;code&gt;h1&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;[This element represents a heading for its section.]
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/sections.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements" rel="noopener noreferrer"&gt;&lt;code&gt;h2&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;[This element represents a heading for its section.]
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/sections.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements" rel="noopener noreferrer"&gt;&lt;code&gt;h3&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;[This element represents a heading for its section.]
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/sections.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements" rel="noopener noreferrer"&gt;&lt;code&gt;h4&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;[This element represents a heading for its section.]
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/sections.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements" rel="noopener noreferrer"&gt;&lt;code&gt;h5&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;[This element represents a heading for its section.]
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/sections.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements" rel="noopener noreferrer"&gt;&lt;code&gt;h6&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;[This element represents a heading for its section.]
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/semantics.html#the-head-element" rel="noopener noreferrer"&gt;&lt;code&gt;head&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;head&lt;/code&gt; element represents a collection of metadata for the &lt;code&gt;Document&lt;/code&gt;.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/sections.html#the-header-element" rel="noopener noreferrer"&gt;&lt;code&gt;header&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;header&lt;/code&gt; element represents a group of introductory or navigational aids.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/sections.html#the-hgroup-element" rel="noopener noreferrer"&gt;&lt;code&gt;hgroup&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;hgroup&lt;/code&gt; element represents a heading and related content. The element may be used to group an &lt;code&gt;h1&lt;/code&gt;–&lt;code&gt;h6&lt;/code&gt; element with one or more &lt;code&gt;p&lt;/code&gt; elements containing content representing a subheading, alternative title, or tagline.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/grouping-content.html#the-hr-element" rel="noopener noreferrer"&gt;&lt;code&gt;hr&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;hr&lt;/code&gt; element represents a paragraph-level thematic break, e.g., a scene change in a story, or a transition to another topic within a section of a reference book; alternatively, it represents a separator between a set of options of a &lt;code&gt;select&lt;/code&gt; element.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/semantics.html#the-html-element" rel="noopener noreferrer"&gt;&lt;code&gt;html&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;html&lt;/code&gt; element represents the root of an HTML document.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-i-element" rel="noopener noreferrer"&gt;&lt;code&gt;i&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;i&lt;/code&gt; element represents a span of text in an alternate voice or mood, or otherwise offset from the normal prose in a manner indicating a different quality of text, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, transliteration, a thought, or a ship name in Western texts.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-iframe-element" rel="noopener noreferrer"&gt;&lt;code&gt;iframe&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;iframe&lt;/code&gt; element represents its content navigable.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element" rel="noopener noreferrer"&gt;&lt;code&gt;img&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;An &lt;code&gt;img&lt;/code&gt; element represents an image.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/input.html#the-input-element" rel="noopener noreferrer"&gt;&lt;code&gt;input&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;input&lt;/code&gt; element represents a typed data field, usually with a form control to allow the user to edit the data.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/edits.html#the-ins-element" rel="noopener noreferrer"&gt;&lt;code&gt;ins&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;ins&lt;/code&gt; element represents an addition to the document.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-kbd-element" rel="noopener noreferrer"&gt;&lt;code&gt;kbd&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;kbd&lt;/code&gt; element represents user input (typically keyboard input, although it may also be used to represent other input, such as voice commands).
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/forms.html#the-label-element" rel="noopener noreferrer"&gt;&lt;code&gt;label&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;label&lt;/code&gt; element represents a caption in a user interface. The caption can be associated with a specific form control, known as the &lt;code&gt;label&lt;/code&gt; element’s labeled control, either using the &lt;code&gt;for&lt;/code&gt; attribute, or by putting the form control inside the &lt;code&gt;label&lt;/code&gt; element itself.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/form-elements.html#the-legend-element" rel="noopener noreferrer"&gt;&lt;code&gt;legend&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;legend&lt;/code&gt; element represents a caption for the rest of the contents of the &lt;code&gt;legend&lt;/code&gt; element’s parent &lt;code&gt;fieldset&lt;/code&gt; element, if any. Otherwise, if the &lt;code&gt;legend&lt;/code&gt; has a parent &lt;code&gt;optgroup&lt;/code&gt; element, then the &lt;code&gt;legend&lt;/code&gt; represents the &lt;code&gt;optgroup&lt;/code&gt;’s label.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/grouping-content.html#the-li-element" rel="noopener noreferrer"&gt;&lt;code&gt;li&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;li&lt;/code&gt; element represents a list item. If its parent element is an &lt;code&gt;ol&lt;/code&gt;, &lt;code&gt;ul&lt;/code&gt;, or &lt;code&gt;menu&lt;/code&gt; element, then the element is an item of the parent element’s list, as defined for those elements. Otherwise, the list item has no defined list-related relationship to any other &lt;code&gt;li&lt;/code&gt; element.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/semantics.html#the-link-element" rel="noopener noreferrer"&gt;&lt;code&gt;link&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;link&lt;/code&gt; element allows authors to link their document to other resources.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/grouping-content.html#the-main-element" rel="noopener noreferrer"&gt;&lt;code&gt;main&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;main&lt;/code&gt; element represents the dominant contents of the document.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/image-maps.html#the-map-element" rel="noopener noreferrer"&gt;&lt;code&gt;map&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;map&lt;/code&gt; element, in conjunction with an &lt;code&gt;img&lt;/code&gt; element and any &lt;code&gt;area&lt;/code&gt; element descendants, defines an image map. The element represents its children.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-mark-element" rel="noopener noreferrer"&gt;&lt;code&gt;mark&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;mark&lt;/code&gt; element represents a run of text in one document marked or highlighted for reference purposes, due to its relevance in another context. When used in a quotation or other block of text referred to from the prose, it indicates a highlight that was not originally present but which has been added to bring the reader’s attention to a part of the text that might not have been considered important by the original author when the block was originally written, but which is now under previously unexpected scrutiny. When used in the main prose of a document, it indicates a part of the document that has been highlighted due to its likely relevance to the user’s current activity.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/grouping-content.html#the-menu-element" rel="noopener noreferrer"&gt;&lt;code&gt;menu&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;menu&lt;/code&gt; element represents a toolbar consisting of its contents, in the form of an unordered list of items (represented by &lt;code&gt;li&lt;/code&gt; elements), each of which represents a command that the user can perform or activate.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/semantics.html#the-meta-element" rel="noopener noreferrer"&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;meta&lt;/code&gt; element represents various kinds of metadata that cannot be expressed using the &lt;code&gt;title&lt;/code&gt;, &lt;code&gt;base&lt;/code&gt;, &lt;code&gt;link&lt;/code&gt;, &lt;code&gt;style&lt;/code&gt;, and &lt;code&gt;script&lt;/code&gt; elements.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/form-elements.html#the-meter-element" rel="noopener noreferrer"&gt;&lt;code&gt;meter&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;meter&lt;/code&gt; element represents a scalar measurement within a known range, or a fractional value; for example disk usage, the relevance of a query result, or the fraction of a voting population to have selected a particular candidate.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/sections.html#the-nav-element" rel="noopener noreferrer"&gt;&lt;code&gt;nav&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;nav&lt;/code&gt; element represents a section of a page that links to other pages or to parts within the page   &lt;dd&gt;a section with navigation links.
    &lt;/dd&gt;
&lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/scripting.html#the-noscript-element" rel="noopener noreferrer"&gt;&lt;code&gt;noscript&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;noscript&lt;/code&gt; element represents nothing if scripting is enabled, and represents its children if scripting is disabled. It is used to present different markup to user agents that support scripting and those that don’t support scripting, by affecting how the document is parsed.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element" rel="noopener noreferrer"&gt;&lt;code&gt;object&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;object&lt;/code&gt; element can represent an external resource, which, depending on the type of the resource, will either be treated as an image or as a child navigable.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/grouping-content.html#the-ol-element" rel="noopener noreferrer"&gt;&lt;code&gt;ol&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;ol&lt;/code&gt; element represents a list of items, where the items have been intentionally ordered, such that changing the order would change the meaning of the document.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/form-elements.html#the-optgroup-element" rel="noopener noreferrer"&gt;&lt;code&gt;optgroup&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;optgroup&lt;/code&gt; element represents a group of option elements with a common label.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/form-elements.html#the-option-element" rel="noopener noreferrer"&gt;&lt;code&gt;option&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;option&lt;/code&gt; element represents an option in a &lt;code&gt;select&lt;/code&gt; element or as part of a list of suggestions in a &lt;code&gt;datalist&lt;/code&gt; element.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/form-elements.html#the-output-element" rel="noopener noreferrer"&gt;&lt;code&gt;output&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;output&lt;/code&gt; element represents the result of a calculation performed by the application, or the result of a user action.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/grouping-content.html#the-p-element" rel="noopener noreferrer"&gt;&lt;code&gt;p&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;p&lt;/code&gt; element represents a paragraph.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/embedded-content.html#the-picture-element" rel="noopener noreferrer"&gt;&lt;code&gt;picture&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;picture&lt;/code&gt; element is a container which provides multiple sources to its contained &lt;code&gt;img&lt;/code&gt; element to allow authors to declaratively control or give hints to the user agent about which image resource to use, based on the screen pixel density, viewport size, image format, and other factors. It represents its children.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/grouping-content.html#the-pre-element" rel="noopener noreferrer"&gt;&lt;code&gt;pre&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;pre&lt;/code&gt; element represents a block of preformatted text, in which structure is represented by typographic conventions rather than by elements.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/form-elements.html#the-progress-element" rel="noopener noreferrer"&gt;&lt;code&gt;progress&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;progress&lt;/code&gt; element represents the completion progress of a task. The progress is either indeterminate, indicating that progress is being made but that it is not clear how much more work remains to be done before the task is complete (e.g. because the task is waiting for a remote host to respond), or the progress is a number in the range zero to a maximum, giving the fraction of work that has so far been completed.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-q-element" rel="noopener noreferrer"&gt;&lt;code&gt;q&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;q&lt;/code&gt; element represents some phrasing content quoted from another source.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-rp-element" rel="noopener noreferrer"&gt;&lt;code&gt;rp&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;rp&lt;/code&gt; element can be used to provide parentheses or other content around a ruby text component of a ruby annotation, to be shown by user agents that don’t support ruby annotations.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-rt-element" rel="noopener noreferrer"&gt;&lt;code&gt;rt&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;rt&lt;/code&gt; element marks the ruby text component of a ruby annotation. When it is the child of a &lt;code&gt;ruby&lt;/code&gt; element, it doesn’t represent anything itself, but the ruby element uses it as part of determining what &lt;em&gt;it&lt;/em&gt; represents.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-ruby-element" rel="noopener noreferrer"&gt;&lt;code&gt;ruby&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;ruby&lt;/code&gt; element allows one or more spans of phrasing content to be marked with ruby annotations. Ruby annotations are short runs of text presented alongside base text, primarily used in East Asian typography as a guide for pronunciation or to include other annotations. In Japanese, this form of typography is also known as furigana.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-s-element" rel="noopener noreferrer"&gt;&lt;code&gt;s&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;s&lt;/code&gt; element represents contents that are no longer accurate or no longer relevant.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-samp-element" rel="noopener noreferrer"&gt;&lt;code&gt;samp&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;samp&lt;/code&gt; element represents sample or quoted output from another program or computing system.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/scripting.html#the-script-element" rel="noopener noreferrer"&gt;&lt;code&gt;script&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;script&lt;/code&gt; element allows authors to include dynamic script, instructions to the user agent, and data blocks in their documents. The element does not represent content for the user.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/grouping-content.html#the-search-element" rel="noopener noreferrer"&gt;&lt;code&gt;search&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;search&lt;/code&gt; element represents a part of a document or application that contains a set of form controls or other content related to performing a search or filtering operation. This could be a search of the web site or application; a way of searching or filtering search results on the current web page; or a global or Internet-wide search function.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/sections.html#the-section-element" rel="noopener noreferrer"&gt;&lt;code&gt;section&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;section&lt;/code&gt; element represents a generic section of a document or application. A section, in this context, is a thematic grouping of content, typically with a heading.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/form-elements.html#the-select-element" rel="noopener noreferrer"&gt;&lt;code&gt;select&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;select&lt;/code&gt; element represents a control for selecting amongst a set of options.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/form-elements.html#the-selectedcontent-element" rel="noopener noreferrer"&gt;&lt;code&gt;selectedcontent&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;selectedcontent&lt;/code&gt; element reflects the contents of a &lt;code&gt;select&lt;/code&gt; element’s currently selected &lt;code&gt;option&lt;/code&gt; element. &lt;code&gt;selectedcontent&lt;/code&gt; elements can be used to declaratively show the selected &lt;code&gt;option&lt;/code&gt; element’s contents within the &lt;code&gt;select&lt;/code&gt; element’s first child &lt;code&gt;button&lt;/code&gt; element.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/scripting.html#the-slot-element" rel="noopener noreferrer"&gt;&lt;code&gt;slot&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;slot&lt;/code&gt; element defines a slot. It is typically used in a shadow tree. A &lt;code&gt;slot&lt;/code&gt; element represents its assigned nodes, if any, and its contents otherwise.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-small-element" rel="noopener noreferrer"&gt;&lt;code&gt;small&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;small&lt;/code&gt; element represents side comments such as small print.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/embedded-content.html#the-source-element" rel="noopener noreferrer"&gt;&lt;code&gt;source&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;source&lt;/code&gt; element allows authors to specify multiple alternative source sets for &lt;code&gt;img&lt;/code&gt; elements or multiple alternative media resources for media elements. It does not represent anything on its own.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-span-element" rel="noopener noreferrer"&gt;&lt;code&gt;span&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;span&lt;/code&gt; element doesn’t mean anything on its own, but can be useful when used together with the global attributes, e.g. &lt;code&gt;class&lt;/code&gt;, &lt;code&gt;lang&lt;/code&gt;, or &lt;code&gt;dir&lt;/code&gt;. It represents its children.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-strong-element" rel="noopener noreferrer"&gt;&lt;code&gt;strong&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;strong&lt;/code&gt; element represents strong importance, seriousness, or urgency for its contents.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/semantics.html#the-style-element" rel="noopener noreferrer"&gt;&lt;code&gt;style&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;style&lt;/code&gt; element allows authors to embed CSS style sheets in their documents. The &lt;code&gt;style&lt;/code&gt; element is one of several inputs to the styling processing model. The element does not represent content for the user.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-sub-and-sup-elements" rel="noopener noreferrer"&gt;&lt;code&gt;sub&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;
&lt;del&gt;[…]&lt;/del&gt; the &lt;code&gt;sub&lt;/code&gt; element represents a subscript.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/interactive-elements.html#the-summary-element" rel="noopener noreferrer"&gt;&lt;code&gt;summary&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;summary&lt;/code&gt; element represents a summary, caption, or legend for the rest of the contents of the &lt;code&gt;summary&lt;/code&gt; element’s parent &lt;code&gt;details&lt;/code&gt; element, if any.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-sub-and-sup-elements" rel="noopener noreferrer"&gt;&lt;code&gt;sup&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;sup&lt;/code&gt; element represents a superscript &lt;del&gt;[…]&lt;/del&gt;.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/tables.html#the-table-element" rel="noopener noreferrer"&gt;&lt;code&gt;table&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;table&lt;/code&gt; element represents data with more than one dimension, in the form of a table.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/tables.html#the-tbody-element" rel="noopener noreferrer"&gt;&lt;code&gt;tbody&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;tbody&lt;/code&gt; element represents a block of rows that consist of a body of data for the parent &lt;code&gt;table&lt;/code&gt; element, if the &lt;code&gt;tbody&lt;/code&gt; element has a parent and it is a table.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/tables.html#the-td-element" rel="noopener noreferrer"&gt;&lt;code&gt;td&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;td&lt;/code&gt; element represents a data cell in a table.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/scripting.html#the-template-element" rel="noopener noreferrer"&gt;&lt;code&gt;template&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;template&lt;/code&gt; element is used to declare fragments of HTML that can be cloned and inserted in the document by script. In a rendering, the &lt;code&gt;template&lt;/code&gt; element represents nothing.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/form-elements.html#the-textarea-element" rel="noopener noreferrer"&gt;&lt;code&gt;textarea&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;textarea&lt;/code&gt; element represents a multiline plain text edit control for the element’s raw value. The contents of the control represent the control’s default value.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/tables.html#the-tfoot-element" rel="noopener noreferrer"&gt;&lt;code&gt;tfoot&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;tfoot&lt;/code&gt; element represents the block of rows that consist of the column summaries (footers) for the parent &lt;code&gt;table&lt;/code&gt; element, if the &lt;code&gt;tfoot&lt;/code&gt; element has a parent and it is a &lt;code&gt;table&lt;/code&gt;.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/tables.html#the-th-element" rel="noopener noreferrer"&gt;&lt;code&gt;th&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;th&lt;/code&gt; element represents a header cell in a table.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/tables.html#the-thead-element" rel="noopener noreferrer"&gt;&lt;code&gt;thead&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;thead&lt;/code&gt; element represents the block of rows that consist of the column labels (headers) and any ancillary non-header cells for the parent &lt;code&gt;table&lt;/code&gt; element, if the &lt;code&gt;thead&lt;/code&gt; element has a parent and it is a &lt;code&gt;table&lt;/code&gt;.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-time-element" rel="noopener noreferrer"&gt;&lt;code&gt;time&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;time&lt;/code&gt; element represents its contents, along with a machine-readable form of those contents in the &lt;code&gt;datetime&lt;/code&gt; attribute. The kind of content is limited to various kinds of dates, times, time-zone offsets, and durations, as described below.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/semantics.html#the-title-element" rel="noopener noreferrer"&gt;&lt;code&gt;title&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;title&lt;/code&gt; element represents the document’s title or name. Authors should use titles that identify their documents even when they are used out of context, for example in a user’s history or bookmarks, or in search results. The document’s title is often different from its first heading, since the first heading does not have to stand alone when taken out of context.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/tables.html#the-tr-element" rel="noopener noreferrer"&gt;&lt;code&gt;tr&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;tr&lt;/code&gt; element represents a row of cells in a table.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/media.html#the-track-element" rel="noopener noreferrer"&gt;&lt;code&gt;track&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;track&lt;/code&gt; element allows authors to specify explicit external timed text tracks for media elements. It does not represent anything on its own.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-u-element" rel="noopener noreferrer"&gt;&lt;code&gt;u&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;u&lt;/code&gt; element represents a span of text with an unarticulated, though explicitly rendered, non-textual annotation, such as labeling the text as being a proper name in Chinese text (a Chinese proper name mark), or labeling the text as being misspelt.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/grouping-content.html#the-ul-element" rel="noopener noreferrer"&gt;&lt;code&gt;ul&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;ul&lt;/code&gt; element represents a list of items, where the order of the items is not important—that is, where changing the order would not materially change the meaning of the document.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-var-element" rel="noopener noreferrer"&gt;&lt;code&gt;var&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;var&lt;/code&gt; element represents a variable. This could be an actual variable in a mathematical expression or programming context, an identifier representing a constant, a symbol identifying a physical quantity, a function parameter, or just be a term used as a placeholder in prose.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/media.html#the-video-element" rel="noopener noreferrer"&gt;&lt;code&gt;video&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;A &lt;code&gt;video&lt;/code&gt; element is used for playing videos or movies, and audio files with captions.
    &lt;/dd&gt;
&lt;dt&gt;
&lt;a href="https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-wbr-element" rel="noopener noreferrer"&gt;&lt;code&gt;wbr&lt;/code&gt;&lt;/a&gt;
    &lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;wbr&lt;/code&gt; element represents a line break opportunity.
&lt;/dd&gt;
&lt;/dl&gt;

&lt;p&gt;Still brief, but significantly more useful, no? &lt;a href="https://meiert.com/blog/web-developer-pilgrimage/" rel="noopener noreferrer"&gt;HTML is a journey.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;All definitions as per &lt;a href="https://html.spec.whatwg.org/" rel="noopener noreferrer"&gt;the HTML Living Standard&lt;/a&gt;, unchanged, licensed under &lt;a href="https://creativecommons.org/licenses/by/4.0/" rel="noopener noreferrer"&gt;CC BY 4.0&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>html</category>
      <category>semantics</category>
      <category>cheatsheet</category>
    </item>
    <item>
      <title>Web Development: On the Size and Output of and the Growth Opportunities Within the Field</title>
      <dc:creator>Jens Oliver Meiert</dc:creator>
      <pubDate>Tue, 18 Nov 2025 16:13:31 +0000</pubDate>
      <link>https://forem.com/j9t/web-development-on-the-size-and-output-of-and-the-growth-opportunities-within-the-field-oj</link>
      <guid>https://forem.com/j9t/web-development-on-the-size-and-output-of-and-the-growth-opportunities-within-the-field-oj</guid>
      <description>&lt;p&gt;The field of web development is huge. Everyone in it knows that.&lt;/p&gt;

&lt;p&gt;A lot happens in our field, too. Web development is a field of constant change. You can literally watch the web platform grow.&lt;/p&gt;

&lt;p&gt;In this vast sea of change, we change, too. We acquire new knowledge, we adapt to evolving practices, we gain more experience.&lt;/p&gt;

&lt;p&gt;As actors in the field, we all have a sense for the size and output of and our growth within the field. You don’t need me to tell where you stand in relation to it.&lt;/p&gt;

&lt;p&gt;However, in my work I’m very close to some of the indicators of just how big the field is, how much it puts out, and how we change as part of it.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. An Indicator for the Size of Our Field
&lt;/h2&gt;

&lt;p&gt;The Web Development Glossary—fundamentally &lt;a href="https://meiert.com/glossary" rel="noopener noreferrer"&gt;a book&lt;/a&gt;, but also &lt;a href="https://webglossary.info/" rel="noopener noreferrer"&gt;a website&lt;/a&gt;—is the largest collection of terms and concepts related to our field.&lt;/p&gt;

&lt;p&gt;The upcoming &lt;a href="https://leanpub.com/web-development-glossary-4k" rel="noopener noreferrer"&gt;new edition of the book&lt;/a&gt; will feature more than 4,500 references with more than 3,000 definitions. No glossary can claim completeness, but the Web Development Glossary gives one of the stronger indicators for the enormity of the field.&lt;/p&gt;

&lt;p&gt;(Is there a resource that gives an even better indication? Would you say MDN, although &lt;a href="https://meiert.com/blog/tech-glossaries-overview/" rel="noopener noreferrer"&gt;with a smaller, differently organized glossary&lt;/a&gt;, is more accessible in this regard? Please comment!)&lt;/p&gt;

&lt;h2&gt;
  
  
  2. An Indicator for the Output of Our Field
&lt;/h2&gt;

&lt;p&gt;For 2024, &lt;a href="https://frontenddogma.com/" rel="noopener noreferrer"&gt;Frontend Dogma&lt;/a&gt; has so far documented more than 3,200 articles and videos from across the field. For 2025, it’s almost 3,000 already. While these ~9 articles daily mean a small fraction of the field’s output in terms of knowledge shared, it does give an idea of &lt;em&gt;much&lt;/em&gt; going on.&lt;/p&gt;

&lt;p&gt;As with any resource, Frontend Dogma will never be complete, and the challenge to gather all the field’s relevant material is even larger than that of a glossary. And yet, it is one resource where we get a taste for how much the field is in motion.&lt;/p&gt;

&lt;p&gt;(Now this is a resource I’m sharing because I’m commenting on the experience from my own work. What would you call out? Which resources show our output as well and better?)&lt;/p&gt;

&lt;h2&gt;
  
  
  3. An Indicator for Individual Growth in Our Field
&lt;/h2&gt;

&lt;p&gt;Like other web developers, and probably like you, I’m both developing and writing about development. In 2015, I bundled up the writings of the previous 10 years to publish &lt;a href="https://meiert.com/blog/on-web-development/" rel="noopener noreferrer"&gt;&lt;cite&gt;On Web Development&lt;/cite&gt;&lt;/a&gt;. 10 years later, this year, I did the same again, releasing &lt;a href="https://meiert.com/blog/on-web-development-2/" rel="noopener noreferrer"&gt;&lt;cite&gt;On Web Development II&lt;/cite&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Now I’m obviously sharing this because I'm not opposed to you and others taking an interest in these writings. But I’m also sharing this because these collections are good indicators, to myself but perhaps even more to others, how we change and grow within the field.&lt;/p&gt;

&lt;p&gt;(Did you publish a collection like this, too? What was your experience? And, are there similar collections of other web developers that you recommend? Please share them!)&lt;/p&gt;

&lt;p&gt;—As a developer and writer, and as the maintainer of a web development news archive and a tech glossary, I hope this gives another sense, another taste just for how big, productive, and transformative web development is.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>frontenddogma</category>
      <category>learning</category>
      <category>career</category>
    </item>
    <item>
      <title>HTML—the Most Difficult Programming Language in the World</title>
      <dc:creator>Jens Oliver Meiert</dc:creator>
      <pubDate>Wed, 22 Oct 2025 22:00:00 +0000</pubDate>
      <link>https://forem.com/j9t/html-the-most-difficult-programming-language-in-the-world-p22</link>
      <guid>https://forem.com/j9t/html-the-most-difficult-programming-language-in-the-world-p22</guid>
      <description>&lt;p&gt;Years ago, the web development community &lt;a href="https://nitter.net/search?q=html%20programming%20language" rel="noopener noreferrer"&gt;discussed and declared on Twitter&lt;/a&gt; that HTML was not just a document language, but a &lt;em&gt;programming&lt;/em&gt; language.&lt;/p&gt;

&lt;p&gt;Meanwhile, virtually no HTML page is error-free. In HTML parlance, almost no page is conformant, compliant, valid, or “validates.” (Cf. validation data from &lt;a href="https://meiert.com/blog/valid-html-2021/" rel="noopener noreferrer"&gt;2021&lt;/a&gt; through &lt;a href="https://meiert.com/blog/html-conformance-2025/" rel="noopener noreferrer"&gt;2025&lt;/a&gt;.)&lt;/p&gt;

&lt;p&gt;If HTML is a programming language, yet virtually no one writes error-free HTML code, there can be only one conclusion:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HTML is the most difficult programming language in the world.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is tongue-in-cheek, but the underlying point isn't: If you’re a professional who puts HTML on your resume, &lt;a href="https://meiert.com/blog/the-frontend-developer-test/" rel="noopener noreferrer"&gt;ship valid HTML.&lt;/a&gt;&lt;/em&gt; This is the minimum to be expected of our work, even when our manager or our client doesn’t ask for it. It’s &lt;a href="https://meiert.com/blog/minimal-and-valid-html/" rel="noopener noreferrer"&gt;not that hard&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>html</category>
      <category>programming</category>
    </item>
    <item>
      <title>Why and How to Write Minimal and Valid HTML, a Link Guide</title>
      <dc:creator>Jens Oliver Meiert</dc:creator>
      <pubDate>Wed, 15 Oct 2025 17:37:47 +0000</pubDate>
      <link>https://forem.com/j9t/why-and-how-to-write-minimal-and-valid-html-a-link-guide-2b4p</link>
      <guid>https://forem.com/j9t/why-and-how-to-write-minimal-and-valid-html-a-link-guide-2b4p</guid>
      <description>&lt;p&gt;If you’re interested in writing HTML that is as compact as possible for a payload as small as possible, and in writing HTML that is error-free and conforms to the HTML standard, then this is a link guide for you. Specializing in minimal and valid HTML, it refers to some of my writings about these subjects.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Minimal HTML
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://meiert.com/blog/html-performance/" rel="noopener noreferrer"&gt;&lt;em&gt;HTML and Performance: Leave Out Optional Tags and Quotes&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://meiert.com/blog/write-html/" rel="noopener noreferrer"&gt;&lt;em&gt;Write HTML, the HTML Way (Not the XHTML Way)&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://meiert.com/blog/minimal-html-magic/" rel="noopener noreferrer"&gt;&lt;em&gt;The Magic of the Most Minimal HTML Possible (and Why We Don’t Make Use of It)&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://meiert.com/blog/minimal-web-development/" rel="noopener noreferrer"&gt;&lt;em&gt;A Short Guide to Minimal Web Development&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How to Write Minimal HTML
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://meiert.com/blog/optional-html/" rel="noopener noreferrer"&gt;&lt;em&gt;Optional HTML: Everything You Need to Know&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://meiert.com/blog/minimal-valid-html/" rel="noopener noreferrer"&gt;&lt;em&gt;The Most Minimal Valid HTML Document&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://meiert.com/blog/html-cheat-sheet/" rel="noopener noreferrer"&gt;&lt;em&gt;The HTML History and Optimization Cheat Sheet&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://meiert.com/blog/html-minifier-next/" rel="noopener noreferrer"&gt;&lt;em&gt;HTML Minifier Next (a Maintained Fork of HTML Minifier)&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/blog/html-minifier-config/"&gt;&lt;em&gt;An HTML Optimizer’s Config for [HTML Minifier]&lt;/em&gt;&lt;/a&gt; * &lt;a href="https://meiert.com/blog/minimal-social-markup/" rel="noopener noreferrer"&gt;&lt;em&gt;Minimal Social Markup&lt;/em&gt;&lt;/a&gt;—just for social markup&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why Valid HTML
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://meiert.com/blog/html-conformance-2025/" rel="noopener noreferrer"&gt;&lt;em&gt;2025: 0 of the Global Top 200 Websites Use Valid HTML&lt;/em&gt;&lt;/a&gt;—to illustrate the pervasiveness of HTML non-conformance (i.e., of invalid HTML)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://meiert.com/blog/about-validation/" rel="noopener noreferrer"&gt;&lt;em&gt;The Two Great Things About Validation (and Conformance)&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://meiert.com/blog/the-frontend-developer-test/" rel="noopener noreferrer"&gt;&lt;em&gt;The 3-Second Frontend Developer Test&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://meiert.com/blog/talk-about-html-conformance/" rel="noopener noreferrer"&gt;&lt;em&gt;We Need to Talk More About Conformance, if We Want to Stop Fantasy HTML&lt;/em&gt;&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://meiert.com/blog/speaking-about-html-conformance/" rel="noopener noreferrer"&gt;&lt;em&gt;How Often Should We Speak About HTML Conformance?&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;a href="https://meiert.com/blog/commit-to-conformance/" rel="noopener noreferrer"&gt;&lt;em&gt;On the Uniting Power of a Commitment to HTML Conformance&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  How to Write Valid HTML
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://meiert.com/blog/html-validator-packages/" rel="noopener noreferrer"&gt;&lt;em&gt;HTML Conformance: A Comparison of 6.5 npm Validator Packages (With 1.5 Recommendations)&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;(You can find more articles about &lt;a href="https://frontenddogma.com/topics/minimalism/" rel="noopener noreferrer"&gt;minimalism&lt;/a&gt; and &lt;a href="https://frontenddogma.com/topics/conformance/" rel="noopener noreferrer"&gt;conformance&lt;/a&gt; on Frontend Dogma.)&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What Else to Consider for HTML Optimization
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://meiert.com/blog/upgrade-your-html-5/" rel="noopener noreferrer"&gt;Examples of HTML optimization&lt;/a&gt;—my ebook series&lt;/li&gt;
&lt;li&gt;&lt;a href="https://meiert.com/blog/rules-for-html/" rel="noopener noreferrer"&gt;&lt;em&gt;The 3 Ground Rules for Writing HTML&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://meiert.com/blog/the-ways-of-writing-html/" rel="noopener noreferrer"&gt;&lt;em&gt;The 6 Ways of Writing HTML (and Their Combinations)&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://meiert.com/blog/what-is-html-optimization/" rel="noopener noreferrer"&gt;&lt;em&gt;What Is HTML Optimization? What Is It Not?&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enjoy writing minimal and valid HTML!&lt;/p&gt;

</description>
      <category>html</category>
      <category>minimalism</category>
      <category>conformance</category>
      <category>guides</category>
    </item>
    <item>
      <title>HTML Minifier Next (a Maintained Fork of HTML Minifier)</title>
      <dc:creator>Jens Oliver Meiert</dc:creator>
      <pubDate>Mon, 14 Jul 2025 06:11:40 +0000</pubDate>
      <link>https://forem.com/j9t/html-minifier-next-a-maintained-fork-of-html-minifier-4p72</link>
      <guid>https://forem.com/j9t/html-minifier-next-a-maintained-fork-of-html-minifier-4p72</guid>
      <description>&lt;p&gt;&lt;em&gt;TL;DR: If you prefer a maintained version of HTML Minifier, use &lt;a href="https://www.npmjs.com/package/html-minifier-next" rel="noopener noreferrer"&gt;HTML Minifier Next&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/kangax/html-minifier" rel="noopener noreferrer"&gt;HTML Minifier&lt;/a&gt; is critical web tooling just like &lt;a href="https://github.com/validator/validator" rel="noopener noreferrer"&gt;the Nu Html Checker&lt;/a&gt; [sic] that, for living HTML, supports &lt;a href="https://validator.w3.org/" rel="noopener noreferrer"&gt;the W3C validator&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Alas, both tools suffer from maintenance issues. While the validator needs more hands-on contributions (I clarified after asking &lt;a href="https://github.com/validator/validator/discussions/1822" rel="noopener noreferrer"&gt;how the community could help&lt;/a&gt;), HTML Minifier is for all practical purposes unmaintained. This is bad because even security-related &lt;em&gt;PRs&lt;/em&gt; aren’t being handled.&lt;/p&gt;

&lt;p&gt;This is now similar for a fork of HTML Minifier, &lt;a href="https://github.com/terser/html-minifier-terser" rel="noopener noreferrer"&gt;html-minifier-terser&lt;/a&gt;. It is slightly more up-to-date and I suggested using it in &lt;a href="https://meiert.com/blog/optimization-measures-31/" rel="noopener noreferrer"&gt;a recent episode&lt;/a&gt; of “Website Optimization Measures,” but after waiting for months to hear back on a few mails, and seeing issues and PRs not being handled, either, this must likewise be consider unmaintained.&lt;/p&gt;

&lt;p&gt;As HTML Minifier is so useful, I decided to release &lt;strong&gt;an updated fork, &lt;a href="https://www.npmjs.com/package/html-minifier-next" rel="noopener noreferrer"&gt;HTML Minifier Next&lt;/a&gt;&lt;/strong&gt; (&lt;a href="https://github.com/j9t/html-minifier-next" rel="noopener noreferrer"&gt;source&lt;/a&gt;, &lt;a href="https://j9t.github.io/html-minifier-next/" rel="noopener noreferrer"&gt;web version&lt;/a&gt;). You can use it like HTML Minifier (&lt;a href="https://github.com/j9t/html-minifier-next/blob/main/README.md" rel="noopener noreferrer"&gt;instructions&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;I forked, optimized, and am now announcing HTML Minifier Next with reasonable optimism that, in the worst case, I could maintain the project alone. However, this is still easier if the community contributes. If you want to get involved, especially around new features, please join and &lt;a href="https://github.com/j9t/html-minifier-next" rel="noopener noreferrer"&gt;help keep HTML Minifier—critical web tooling—up-to-date&lt;/a&gt;. Thanks!&lt;/p&gt;

</description>
      <category>html</category>
      <category>htmlminifier</category>
      <category>optimization</category>
      <category>performance</category>
    </item>
    <item>
      <title>The HTML History and Optimization Cheat Sheet</title>
      <dc:creator>Jens Oliver Meiert</dc:creator>
      <pubDate>Wed, 18 Sep 2024 17:02:18 +0000</pubDate>
      <link>https://forem.com/j9t/the-html-history-and-optimization-cheat-sheet-4ekc</link>
      <guid>https://forem.com/j9t/the-html-history-and-optimization-cheat-sheet-4ekc</guid>
      <description>&lt;p&gt;If you’re interested in HTML history and optimization, then this may be useful to you:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.google.com/spreadsheets/d/10Lko1HHsRT6GVfvNY2KbUexybNTAnk0S86OIl0MZjTs/edit" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd3rdtowr0c5lpf.cloudfront.net%2Fen%2Fupload%2F2024%2F09%2Fhtml-cheat-sheet.png" alt="Screenshot of the cheat sheet." width="760" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Figure: &lt;a href="https://docs.google.com/spreadsheets/d/10Lko1HHsRT6GVfvNY2KbUexybNTAnk0S86OIl0MZjTs/edit" rel="noopener noreferrer"&gt;&lt;cite&gt;The HTML History and Optimization Cheat Sheet.&lt;/cite&gt;&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;After the launch of &lt;a href="https://meiert.com/en/blog/rote-learning-html-and-css/" rel="noopener noreferrer"&gt;the free &lt;cite&gt;Rote Learning HTML &amp;amp; CSS&lt;/cite&gt; ebook&lt;/a&gt; (which may be of interest, too) this information available is now available for free as well, and it complements &lt;a href="https://meiert.com/en/indices/html-elements/" rel="noopener noreferrer"&gt;the HTML elements index&lt;/a&gt;, where you can find an overview of all HTML elements over all the major specifications.&lt;/p&gt;

&lt;p&gt;Enjoy writing HTML ✌️&lt;/p&gt;

</description>
      <category>html</category>
      <category>cheatsheet</category>
      <category>optimization</category>
      <category>history</category>
    </item>
    <item>
      <title>Learn HTML and CSS, the Hard Way (Free Ebook)</title>
      <dc:creator>Jens Oliver Meiert</dc:creator>
      <pubDate>Tue, 27 Aug 2024 09:08:10 +0000</pubDate>
      <link>https://forem.com/j9t/learn-html-and-css-the-hard-way-free-ebook-2eo1</link>
      <guid>https://forem.com/j9t/learn-html-and-css-the-hard-way-free-ebook-2eo1</guid>
      <description>&lt;p&gt;If you’re a frontend developer, you’re working with HTML and CSS.&lt;/p&gt;

&lt;p&gt;And yet, you may &lt;em&gt;not&lt;/em&gt;…&lt;/p&gt;

&lt;p&gt;…have all the HTML elements in mind, and their meanings&lt;/p&gt;

&lt;p&gt;…know all the void elements&lt;/p&gt;

&lt;p&gt;…know all the elements with optional start or end tags (and use that to write &lt;a href="https://css-tricks.com/write-html-the-html-way-not-the-xhtml-way/" rel="noopener noreferrer"&gt;HTML–HTML&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;…know the element categories&lt;/p&gt;

&lt;p&gt;…know all HTML attributes&lt;/p&gt;

&lt;p&gt;…be clear about all global attributes&lt;/p&gt;

&lt;p&gt;…know which elements have what attributes&lt;/p&gt;

&lt;p&gt;You may also not…&lt;/p&gt;

&lt;p&gt;…know all CSS selectors&lt;/p&gt;

&lt;p&gt;…be aware of all properties and where they’ve last been specified (okay, this is setting quite some expectations now)&lt;/p&gt;

&lt;p&gt;…know all the at-rules&lt;/p&gt;

&lt;p&gt;Of course, you can find (and should review) this information in the HTML and CSS specifications.&lt;/p&gt;

&lt;p&gt;Yet there’s also free ebook bundling all of this information:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://meiert.com/en/blog/rote-learning-html-and-css/" rel="noopener noreferrer"&gt;&lt;cite&gt;Rote Learning HTML &amp;amp; CSS&lt;/cite&gt;&lt;/a&gt; (by yours truly).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before you get the book, be advised:&lt;/p&gt;

&lt;p&gt;This is not a beginner book.&lt;/p&gt;

&lt;p&gt;This is not an explainer book.&lt;/p&gt;

&lt;p&gt;This is not an exciting book.&lt;/p&gt;

&lt;p&gt;It is, in fact, quite literally the most boring book you will have ever read.&lt;/p&gt;

&lt;p&gt;Its use is equally literally to facilitate one thing—rote learning, memorization, of the fundamental parts of HTML and CSS.&lt;/p&gt;

&lt;p&gt;Nothing more—and nothing less.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://meiert.com/en/blog/rote-learning-html-and-css/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd3rdtowr0c5lpf.cloudfront.net%2Fde%2Fpublications%2Fbooks%2Frote-learning-html-and-css%2Fcover-s.png" alt="The cover of “Rote Learning HTML &amp;amp; CSS.”" width="180" height="288"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>html</category>
      <category>css</category>
      <category>books</category>
      <category>learning</category>
    </item>
    <item>
      <title>We Need to Talk More About Conformance, If We Want to Stop Fantasy HTML</title>
      <dc:creator>Jens Oliver Meiert</dc:creator>
      <pubDate>Tue, 28 May 2024 14:24:56 +0000</pubDate>
      <link>https://forem.com/j9t/we-need-to-talk-more-about-conformance-if-we-want-to-stop-fantasy-html-45ho</link>
      <guid>https://forem.com/j9t/we-need-to-talk-more-about-conformance-if-we-want-to-stop-fantasy-html-45ho</guid>
      <description>&lt;p&gt;Conformant and valid HTML is the exception when it comes to HTML used on websites and in apps. This is particularly visible on popular websites, where at the moment, &lt;a href="https://meiert.com/en/blog/html-conformance-2023/" rel="noopener noreferrer"&gt;none of the Top 100 sites worldwide&lt;/a&gt; uses valid HTML.&lt;/p&gt;

&lt;p&gt;It’s easy to argue that conformant and valid output is &lt;a href="https://meiert.com/en/blog/professional-web-developer/#toc-high-standards" rel="noopener noreferrer"&gt;the mark of a professional web developer&lt;/a&gt;. It takes &lt;em&gt;nothing&lt;/em&gt; to write a document that contains HTML errors. To reuse a past metaphor, put a houseplant on the keyboard, store the result as a file with an “html” extension, and you have an invalid HTML document.&lt;/p&gt;

&lt;p&gt;To stop houseplant and fantasy HTML, however, we need to raise awareness for HTML conformance and validation—we need to talk about HTML conformance and validation.&lt;/p&gt;

&lt;p&gt;That happens &lt;a href="https://frontenddogma.com/topics/conformance/" rel="noopener noreferrer"&gt;not nearly as often&lt;/a&gt; as it should happen (and it should not always be done by the same people).&lt;/p&gt;

&lt;p&gt;Surveys like &lt;a href="https://2023.stateofhtml.com/" rel="noopener noreferrer"&gt;State of HTML&lt;/a&gt; are an excellent opportunity to inquire about authors’ validation practices (one that, sadly, was missed last year). Even if the result confirms what we can measure on people’s websites—that authors don’t pay attention to using actual, valid HTML code—, asking plants a seed.&lt;/p&gt;

&lt;p&gt;Whether you’re a frontend developer, lead, or manager, reconsider your expectations and practices if you haven’t yet chosen not to ship erroneous HTML. The &lt;a href="https://meiert.com/en/blog/commit-to-conformance/" rel="noopener noreferrer"&gt;more of us&lt;/a&gt; decide to talk about using actual HTML on our sites and in our apps, and lead by example, the better for our users and clients, and the better for our craft and profession. On the engineering side of web development, it’s &lt;strong&gt;HTML first&lt;/strong&gt;—&lt;a href="https://validator.w3.org/" rel="noopener noreferrer"&gt;if it is HTML&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>html</category>
      <category>conformance</category>
      <category>validation</category>
      <category>community</category>
    </item>
    <item>
      <title>14 Tips for Becoming an Indie Author</title>
      <dc:creator>Jens Oliver Meiert</dc:creator>
      <pubDate>Thu, 09 Nov 2023 16:47:56 +0000</pubDate>
      <link>https://forem.com/j9t/14-tips-for-becoming-an-indie-author-4ae4</link>
      <guid>https://forem.com/j9t/14-tips-for-becoming-an-indie-author-4ae4</guid>
      <description>&lt;p&gt;You’re thinking about writing and publishing a book by yourself? And, you’re wondering about the process, and may be concerned about missing something?&lt;/p&gt;

&lt;p&gt;I’ve written 5 books with my publisher, &lt;a href="https://www.oreilly.com/" rel="noopener noreferrer"&gt;O’Reilly&lt;/a&gt;, and 15 as an independent author, recently with my own publishing outlet, &lt;a href="https://frontenddogma.com/" rel="noopener noreferrer"&gt;Frontend Dogma&lt;/a&gt;. I’m still learning about the publishing business, every day, but there are a few things I have learned (I hope). Let me share these things, if it can help you get started.&lt;/p&gt;

&lt;p&gt;The first tip right here: &lt;strong&gt;Just do it.&lt;/strong&gt; You can produce a decent-quality book. And despite a changing market with &lt;a href="https://wordsrated.com/book-sales-statistics/" rel="noopener noreferrer"&gt;fewer books sold in 2022&lt;/a&gt;, more people &lt;a href="https://wordsrated.com/reading-habits-world/" rel="noopener noreferrer"&gt;than not&lt;/a&gt; do read.&lt;/p&gt;

&lt;h3&gt;Start With an Ebook&lt;/h3&gt;

&lt;p&gt;Despite the convenience of ebooks, &lt;a href="https://wordsrated.com/print-book-vs-e-book-sales-statistics/" rel="noopener noreferrer"&gt;more print books&lt;/a&gt; are being bought than ebooks. While this means a smaller market for publishers, ebooks are easier and cheaper to create than print books. Start with an ebook.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Let me underscore this both &lt;a href="https://meiert.com/en/blog/tips-to-read-more-and-faster/#toc-ebooks" rel="noopener noreferrer"&gt;as a reader&lt;/a&gt; and as an author—ebooks have many advantages over print books.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;Choose a Comfortable Writing Setup&lt;/h3&gt;

&lt;p&gt;While you don’t have to write hours on end (more on that in a second), you do want to be comfortable when writing. As such, play with different word processors and text editors, as well as work environments, to find what’s to your liking. There’s nothing definite here as it’s precisely the point that you try out various settings to tell what works well for you.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;For me, I do most of my writing in a text editor (BBEdit), in my &lt;a href="https://webglossary.info/terms/integrated-development-environment/" rel="noopener noreferrer"&gt;IDE&lt;/a&gt; (WebStorm), or in Google Docs. I don’t care too much about the work environment, but as my post-pandemic life is still less eventful than &lt;a href="https://meiert.com/en/blog/everyday-adventurer/" rel="noopener noreferrer"&gt;it used&lt;/a&gt; &lt;a href="https://meiert.com/en/blog/journey-of-j/" rel="noopener noreferrer"&gt;to be&lt;/a&gt;, that’s largely at home, at my desktop machine, at a standing desk.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;Write Regularly (by Establishing a Routine)&lt;/h3&gt;

&lt;p&gt;A key to writing is—writing. While that’s obvious, what’s not obvious is that it’s not about the amount you write, but how regularly you write. For this purpose, consider writing with a well-defined frequency—say, every day, or every work day, or every Saturday, or whatever cadence you prefer. To get yourself started, consider setting yourself &lt;a href="https://meiert.com/en/blog/reminders/" rel="noopener noreferrer"&gt;reminders&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Don’t Feel Obliged to Write Much&lt;/h3&gt;

&lt;p&gt;At the same time, re-set your expectations on how much to write each session. Set them low, very low—say, a sentence, or perhaps just &lt;em&gt;anything&lt;/em&gt; (if only a word). It’s easier and likely more effective to write just a little every n days, than vast runs of text every other intervals.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I’ve worked successfully with “write every day, but however much you like,” and moved to a lesser-defined frequency today, after I’ve built more experience and rely on some other techniques mentioned in this post. Like the next one:&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;Use Inspiration and Flow&lt;/h3&gt;

&lt;p&gt;While you can push yourself into writing (a quality one can acquire, but that I wouldn’t emphasize here), it’s much more efficient to use inspiration as well as &lt;a href="https://www.amazon.com/dp/0061339202/?tag=j9t-21-20" rel="noopener noreferrer"&gt;flow&lt;/a&gt; (“the zone”) you have in the moment.&lt;/p&gt;

&lt;p&gt;That is, in moments when you seem to be overflowing with ideas, or when you can write without effort, stay in these moments—cherish and use them.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In such moments, I’m driving my partner nuts, because I tend to forget time, and push back on obligations where possible—that’s how much I value these opportunities. You get so much more done in a moment of flow, that it saves you hours of time elsewhere.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;Don’t Use AI Tools&lt;/h3&gt;

&lt;p&gt;Don’t use ChatGPT or other AI tooling to write for you. While AI may seem helpful to quickly generate some content, it’s likely to read soulless (as per one of my editors) and contain issues that require much more editing. That will help you improve as an editor—but not as a writer. Working with AI will for that reason also not feel like you wrote the book.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I’ve written a book with AI (&lt;a href="https://meiert.com/en/blog/the-problems-with-all-the-good-things/" rel="noopener noreferrer"&gt;&lt;cite&gt;The Problems With All the Good Things&lt;/cite&gt;&lt;/a&gt;), but quite deliberately and transparently as I did so to make a particular point. You may find similar use cases. For purposes of starting out as an author or writer, however, I recommend to begin with a different project.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;Work With an Editor&lt;/h3&gt;

&lt;p&gt;Even as an indie author, you need an &lt;a href="https://en.wikipedia.org/wiki/Copy_editing" rel="noopener noreferrer"&gt;editor&lt;/a&gt;. While you can ask friends and peers for help, it pays off to hire a professional. One good platform for this is &lt;a href="https://www.upwork.com/" rel="noopener noreferrer"&gt;Upwork&lt;/a&gt;—while you may need to try working with different editors (maybe you want to invest in more experience, or prefer a different work style), &lt;em&gt;any&lt;/em&gt; editor is better than no editor.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I used to be nervous about my editors (for my first books for O’Reilly), then I skimped on this (for my first indie books), then I had hits and misses, and now I’m glad I’ve acquired some pool of editors to work with, and a sense for their approach. It’s useful to understand that the “tougher” an editor may seem—which can be quite uncomfortable at first—, the better it usually is for our work.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;Hire a Cover Designer&lt;/h3&gt;

&lt;p&gt;Unless you’ve had some design training, hire a cover designer, too. (Don’t try to save on it, as may be the case with platforms like &lt;a href="https://www.fiverr.com/" rel="noopener noreferrer"&gt;Fiverr&lt;/a&gt;, so try Upwork for a designer, too.)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In my work as an indie author and publisher, I’ve probably done more covers myself than I hired cover designers for. I’ve done some pretty bad ones, but also some that work okay. Would this contradict my advice? No—I’ve had some training, and my recommendation holds. But, a nice segue for the next point, it’s your call, and you could also:&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;Experiment&lt;/h3&gt;

&lt;p&gt;Don’t be afraid. (Though easier said than done, that’s generally good advice.) Work with a mindset of trying things out, of experimenting. This works better if you can detach yourself from that “one perfect book” you’re going to produce, and if you grant yourself room for errors—and improvements. Here you’ll particularly benefit from starting with ebooks, as you can update the manuscript as well as the cover once you shipped. Embrace it.&lt;/p&gt;

&lt;h3&gt;Be Kind to Yourself&lt;/h3&gt;

&lt;p&gt;Then, important: Don’t be hard, be kind to yourself. Especially when starting out, writing a book can be intimidating. (Your own expectations may be intimidating!) Trust the process, of slowly but surely adding to your book, of being able to course-correct and make future updates, of having professional help.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I remember &lt;a href="https://meiert.com/de/publications/books/webdesign-mit-css/" rel="noopener noreferrer"&gt;my first book project&lt;/a&gt;, for O’Reilly, and signing my contract with them. The book outline and size of the manuscript were defined before one word was written—and with, if I recall correctly, a 250-page target this left me with a mountain to climb. Back then I took this with an attitude of “just do it,” and relying on the O’Reilly team; 20 titles later, my attitude is one of building on experience, trusting a network of professionals, and making constant improvements (&lt;a href="https://meiert.com/en/blog/living-websites-living-books/" rel="noopener noreferrer"&gt;“living books”&lt;/a&gt;).&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;Distribute Widely&lt;/h3&gt;

&lt;p&gt;As an indie author and publisher, you may start with one platform—&lt;a href="https://kdp.amazon.com/" rel="noopener noreferrer"&gt;Amazon’s KDP&lt;/a&gt;, &lt;a href="https://www.lulu.com/" rel="noopener noreferrer"&gt;Lulu&lt;/a&gt;, or maybe &lt;a href="https://leanpub.com/" rel="noopener noreferrer"&gt;Leanpub&lt;/a&gt;. You may develop the appetite to publish your next title on that platform, too. That can be fine and actually quite useful—but even with Amazon &lt;a href="https://www.enterpriseappstoday.com/stats/ebooks-statistics.html" rel="noopener noreferrer"&gt;being &lt;em&gt;the&lt;/em&gt; ebook platform&lt;/a&gt;, increase your reach, and sell on additional platforms.&lt;/p&gt;

&lt;p&gt;My standard set of sites I’m selling my books on include the following (in descending order of perceived reach):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kdp.amazon.com/" rel="noopener noreferrer"&gt;Amazon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://leanpub.com/" rel="noopener noreferrer"&gt;Leanpub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.apple.com/apple-books/" rel="noopener noreferrer"&gt;Apple Books&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://play.google.com/books" rel="noopener noreferrer"&gt;Google Play Books&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gumroad.com/" rel="noopener noreferrer"&gt;Gumroad&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.kobo.com/" rel="noopener noreferrer"&gt;Kobo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://payhip.com/" rel="noopener noreferrer"&gt;Payhip&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also have cooperations with magazines like &lt;a href="https://www.sitepoint.com/" rel="noopener noreferrer"&gt;SitePoint&lt;/a&gt;, who make my technical titles available as part of their Premium program. This is something worth mentioning as for your own books, you may find niche sites that can help you distribute your work, too.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;For my first three indie books, I had put everything in the Amazon basket. While that worked well enough to sell a good number of them, a later pivot to Leanpub as my “main” platform (they are &lt;em&gt;fantastic&lt;/em&gt; to &lt;a href="http://help.leanpub.com/en/articles/2916385-getting-started-using-leanpub-s-git-and-github-writing-mode-to-write-and-publish-a-book" rel="noopener noreferrer"&gt;generate books from Markdown pulled from GitHub&lt;/a&gt;) was the first and most impactful step for me to increase reach. I made books available on other platforms soon after, and apart from Payhip, which I can’t make good use of yet, they all—paid off.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;Keep on Learning&lt;/h3&gt;

&lt;p&gt;Experiment with your writing and your output, but also learn more about writing and publishing. One of the most excellent books I’ve read is Roy Peter Clark’s &lt;a href="https://www.amazon.com/dp/0316014990/?tag=j9t-21-20" rel="noopener noreferrer"&gt;&lt;cite&gt;Writing Tools&lt;/cite&gt;&lt;/a&gt;. (I also love William Strunk Jr.’s classic, &lt;a href="https://www.amazon.com/dp/B0771WKC7H/?tag=j9t-21-20" rel="noopener noreferrer"&gt;&lt;cite&gt;The Elements of Style&lt;/cite&gt;&lt;/a&gt;, on the editing side.) You’ll find other books, as well as videos and courses, that help your indie author journey.&lt;/p&gt;

&lt;h3&gt;Write More&lt;/h3&gt;

&lt;p&gt;Once you’ve completed your first book, consider continuing. The hard part is done, as every additional book will be easier and easier to write and publish. If you aren’t already working with other formats, like articles or blog posts, consider doing that as well. It will provide you with a broader perspective, additional experience, and perhaps marketing opportunities. (If you’re doing this on your own website, even better—&lt;a href="https://meiert.com/en/blog/run-your-own-website/" rel="noopener noreferrer"&gt;there are many advantages to that&lt;/a&gt;).&lt;/p&gt;

&lt;h3&gt;Promote as You Please&lt;/h3&gt;

&lt;p&gt;A final tip coming from someone who’s still learning about marketing: If you’re interested in and enjoy promoting and marketing your book(s), do it. If you don’t, don’t sweat it. Now, if you approach writing with the ambition of selling millions of copies in dozens of languages, this will not satisfy you—but you may already have ideas about your marketing as well. (Go for it.) But if writing and publishing are the priority for you, don’t bend over backwards to promote it. Or—look for someone who has been successful doing that by themselves. (I &lt;em&gt;think&lt;/em&gt; Adam Clarke sketched some useful starting points with his &lt;a href="https://www.amazon.com/dp/B00NH0XZR0/?tag=j9t-21-20" rel="noopener noreferrer"&gt;SEO book&lt;/a&gt;, but I need to review.)&lt;/p&gt;

&lt;p&gt;❧ The Web is amazing when it comes to the opportunities it provides us with, including that it makes it easy and affordable to publish books. The Web also makes it easy to make &lt;em&gt;little&lt;/em&gt; out of these opportunities, both in terms of the output as well as our growth. These tips sketch ways to use the opportunities so that the output is solid, and that some growth as a author and publisher is assured. If these tips have helped you, please share this article—or check out one of &lt;a href="https://www.goodreads.com/author/list/13623828.Jens_Oliver_Meiert" rel="noopener noreferrer"&gt;my own indie books&lt;/a&gt;. (Thanks!)&lt;/p&gt;

</description>
      <category>writing</category>
      <category>publishing</category>
      <category>teaching</category>
      <category>tips</category>
    </item>
    <item>
      <title>On the Uniting Power of a Commitment to HTML Conformance</title>
      <dc:creator>Jens Oliver Meiert</dc:creator>
      <pubDate>Mon, 23 Oct 2023 18:42:10 +0000</pubDate>
      <link>https://forem.com/j9t/on-the-uniting-power-of-a-commitment-to-html-conformance-aeh</link>
      <guid>https://forem.com/j9t/on-the-uniting-power-of-a-commitment-to-html-conformance-aeh</guid>
      <description>&lt;p&gt;HTML is the language of the Web. No matter what other languages are being used, in the end it all boils down to the content or functionality being represented by HTML.&lt;/p&gt;

&lt;p&gt;Unfortunately, our field, the field of web and frontend development, doesn’t commit to any quality standard—that is, expectation—for HTML.&lt;/p&gt;

&lt;p&gt;It’s not that no such standard existed—&lt;a href="https://meiert.com/en/blog/the-frontend-developer-test/" rel="noopener noreferrer"&gt;arguably&lt;/a&gt;, the baseline is conformance with the HTML specification—, it’s that this standard is being ignored.&lt;/p&gt;

&lt;p&gt;This isn’t hyperbole: When you validate—check on conformance—the most popular websites, &lt;a href="https://meiert.com/en/blog/valid-html-2022/" rel="noopener noreferrer"&gt;none (0) uses valid and conformant HTML&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It’s similar for websites for frontend documentation, tools, and starter projects.&lt;/p&gt;

&lt;p&gt;Even when you turn to the websites of web developers, it’s the exception, and not the rule, that there would be no conformance issues.&lt;/p&gt;

&lt;p&gt;The reason for this misery is not the point of this article—some of our peers as well as &lt;a href="https://meiert.com/en/blog/critical-frontend-development/" rel="noopener noreferrer"&gt;myself&lt;/a&gt; have hypothesized and written about this in other fora.&lt;/p&gt;

&lt;p&gt;The point is also not that we miss what this lack of a quality standard means for the value of our field—that instead of increasing it, we deflate it.&lt;/p&gt;

&lt;p&gt;The point is that we miss &lt;em&gt;an exceptional opportunity to unite behind it&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Imagine, just for a moment, if we as web and frontend developers would all produce conformant websites, and all ran conformant websites.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;“This document was successfully checked as HTML,” as &lt;a href="https://validator.w3.org/" rel="noopener noreferrer"&gt;the W3C validator&lt;/a&gt; says.&lt;/p&gt;

&lt;p&gt;This, &lt;a href="https://css-tricks.com/the-great-divide/" rel="noopener noreferrer"&gt;for once&lt;/a&gt;, could be uniting; it could get us from indifferent or apologetic ignorance to &lt;em&gt;mutual respect and healthy pride&lt;/em&gt; of being a member of our field.&lt;/p&gt;

&lt;p&gt;It could allow us to tackle more serious challenges—like advancing accessibility—with collective vigor.&lt;/p&gt;

&lt;p&gt;That unity, that feeling, is something our field has always lacked. Can we finally change this? Can we finally convince our peers? (Are &lt;em&gt;you&lt;/em&gt; on board?)&lt;/p&gt;

&lt;p&gt;Together, we could lead by example, together we could establish our field’s first quality standard—an objective and proven, a light but robust foundation that we, as professional frontend developers, can build on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Commit to HTML conformance. Make sure your HTML output is actual, error-free HTML. Make use of &lt;a href="https://validator.w3.org" rel="noopener noreferrer"&gt;validators&lt;/a&gt; and &lt;a href="https://www.npmjs.com/package/html-validate" rel="noopener noreferrer"&gt;validation packages&lt;/a&gt; and validate.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>html</category>
      <category>conformance</category>
      <category>community</category>
      <category>craft</category>
    </item>
    <item>
      <title>200 Web-Based, Must-Try Web Design and Development Tools</title>
      <dc:creator>Jens Oliver Meiert</dc:creator>
      <pubDate>Tue, 08 Aug 2023 19:52:32 +0000</pubDate>
      <link>https://forem.com/j9t/200-web-based-must-try-web-design-and-development-tools-fbc</link>
      <guid>https://forem.com/j9t/200-web-based-must-try-web-design-and-development-tools-fbc</guid>
      <description>&lt;p&gt;Let’s get right into it: Here are not 10, not 50, not 100, but—200 web-based and free tools that make your web design and web development life easier. (It’s true.)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://shop.alterlinks.com/htaccess-validator/htaccess-validator.php" rel="noopener noreferrer"&gt;.htaccess Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chmod-calculator.com/" rel="noopener noreferrer"&gt;“chmod” Calculator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.accessibilitychecker.org/" rel="noopener noreferrer"&gt;Accessibility Checker (AccessibilityChecker.org)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wave.webaim.org/" rel="noopener noreferrer"&gt;Accessibility Checker (WAVE)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/WAI/eval/report-tool/evaluation/define-scope" rel="noopener noreferrer"&gt;Accessibility Evaluation Report Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.spyfu.com/" rel="noopener noreferrer"&gt;Ads and Keywords Analyzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.devglan.com/online-tools/aes-encryption-decryption" rel="noopener noreferrer"&gt;AES Encrypter and Decrypter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.arraybuilder.com/" rel="noopener noreferrer"&gt;Array Transformer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://astexplorer.net/" rel="noopener noreferrer"&gt;AST Viewer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://uptime.com/freetools/global-uptime-test" rel="noopener noreferrer"&gt;Availability Checker (Regional)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://trianglify.io/" rel="noopener noreferrer"&gt;Background Image Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://doodad.dev/pattern-generator/" rel="noopener noreferrer"&gt;Background Pattern Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ahrefs.com/backlink-checker" rel="noopener noreferrer"&gt;Backlink Analyzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.backlink-tool.org/en/anchor-text-checker/" rel="noopener noreferrer"&gt;Backlink Anchor Text Analyzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.bandwidthplace.com/" rel="noopener noreferrer"&gt;Bandwidth Speed Tester&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://deepai.org/machine-learning-model/colorizer" rel="noopener noreferrer"&gt;Black and White Photo Colorizer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://trovami.altervista.org/en/webmasters/makebutton" rel="noopener noreferrer"&gt;Brilliant Button Maker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amiunique.org/" rel="noopener noreferrer"&gt;Browser Fingerprint Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://c64.superdefault.com/" rel="noopener noreferrer"&gt;C64-Style Image Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://convertcase.net/" rel="noopener noreferrer"&gt;Case Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://seositecheckup.com/tools/cdn-usage-test" rel="noopener noreferrer"&gt;CDN Use Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grammica.com/character-count" rel="noopener noreferrer"&gt;Character Counter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ipaddressguide.com/cidr" rel="noopener noreferrer"&gt;CIDR to IPv4 Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://transform.tools/" rel="noopener noreferrer"&gt;Code Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://prettyprinter.de/" rel="noopener noreferrer"&gt;Code Formatter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://yellowlab.tools/" rel="noopener noreferrer"&gt;Code Quality Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://carbon.now.sh/" rel="noopener noreferrer"&gt;Code Screenshot Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://neatnik.net/view-source/" rel="noopener noreferrer"&gt;Code Viewer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.whocanuse.com/" rel="noopener noreferrer"&gt;Color Accessibility Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.toptal.com/designers/colorfilter" rel="noopener noreferrer"&gt;Color Blindness Emulator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.myndex.com/APCA/" rel="noopener noreferrer"&gt;Color Contrast Analyzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://atmos.style/color-converter/hex-to-lch" rel="noopener noreferrer"&gt;Color Converter (Hex, RGB, HSL, and LCH)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://convertingcolors.com/" rel="noopener noreferrer"&gt;Color Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lokeshdhakar.com/projects/color-thief/" rel="noopener noreferrer"&gt;Color Extractor and Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://commitlint.io/" rel="noopener noreferrer"&gt;Commit Message Linter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cspvalidator.org/" rel="noopener noreferrer"&gt;Content Security Policy Validator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.privacypolicies.com/cookie-consent/" rel="noopener noreferrer"&gt;Cookie Consent Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cookie-script.com/" rel="noopener noreferrer"&gt;Cookie Use Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://crontab.guru/" rel="noopener noreferrer"&gt;Cron Schedule Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cm2.pw/websocket" rel="noopener noreferrer"&gt;Cross-Site WebSocket Hijacking Tester&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cssstats.com/" rel="noopener noreferrer"&gt;CSS Analyzer (CSS Stats)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://projects.verou.me/rework-utils/" rel="noopener noreferrer"&gt;CSS Analyzer (Lea Verou)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.websiteplanet.com/webtools/unminify-js/" rel="noopener noreferrer"&gt;CSS and JavaScript Un-Minifier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://animista.net/" rel="noopener noreferrer"&gt;CSS Animation Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.squarefree.com/userstyles/make-bookmarklet.html" rel="noopener noreferrer"&gt;CSS Bookmarklet Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://min-max-calculator.9elements.com/" rel="noopener noreferrer"&gt;CSS Clamp Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cubic-bezier.com/" rel="noopener noreferrer"&gt;CSS Cubic Bézier Curve Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://unused-css.com/" rel="noopener noreferrer"&gt;CSS Efficiency Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://flexbox.tech/" rel="noopener noreferrer"&gt;CSS Flexbox Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://modern-fluid-typography.vercel.app/" rel="noopener noreferrer"&gt;CSS Fluid Typography Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hype4.academy/tools/glassmorphism-generator" rel="noopener noreferrer"&gt;CSS Glassmorphism Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.joshwcomeau.com/gradient-generator/" rel="noopener noreferrer"&gt;CSS Gradient Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://layout.bradwoods.io/" rel="noopener noreferrer"&gt;CSS Grid Layout Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://autoprefixer.github.io/" rel="noopener noreferrer"&gt;CSS Prefixer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://quantityqueries.com/" rel="noopener noreferrer"&gt;CSS Quantity Query Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://isellsoap.github.io/specificity-visualizer/" rel="noopener noreferrer"&gt;CSS Specificity Visualizer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://omatsuri.app/triangle-generator" rel="noopener noreferrer"&gt;CSS Triangle Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jigsaw.w3.org/css-validator/" rel="noopener noreferrer"&gt;CSS Validator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ezgif.com/image-to-datauri" rel="noopener noreferrer"&gt;Data URI Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hihayk.github.io/shaper/" rel="noopener noreferrer"&gt;Design and Design Token Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.knapsack.cloud/calculator" rel="noopener noreferrer"&gt;Design System ROI Calculator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://tokens.layoutit.com/" rel="noopener noreferrer"&gt;Design Tokens Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.diagrameditor.com/" rel="noopener noreferrer"&gt;Diagram Editor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://doodad.dev/dither-me-this/" rel="noopener noreferrer"&gt;Dither Effect Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nslookup.io/" rel="noopener noreferrer"&gt;DNS Analyzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.whatsmydns.net/" rel="noopener noreferrer"&gt;DNS Propagation Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://uptime.com/domain-health" rel="noopener noreferrer"&gt;Domain and Server Health Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.namecheck.com/en/" rel="noopener noreferrer"&gt;Domain and Social Media Name Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.englishtools.org/en/convert-english-words-into-ipa-phonetic-alphabet" rel="noopener noreferrer"&gt;English to IPA Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://realfavicongenerator.net/favicon_checker" rel="noopener noreferrer"&gt;Favicon Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.websiteplanet.com/webtools/favicon-generator/" rel="noopener noreferrer"&gt;Favicon Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://favicon.io/" rel="noopener noreferrer"&gt;Favicon Generators&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://flat-icon.surge.sh/" rel="noopener noreferrer"&gt;Flat Design Icon Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.myfonts.com/pages/whatthefont" rel="noopener noreferrer"&gt;Font Determiner&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://meowni.ca/font-style-matcher/" rel="noopener noreferrer"&gt;Font Style Matcher&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://play.typedetail.com/" rel="noopener noreferrer"&gt;Font Tester&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dotcom-tools.com/ftp-test" rel="noopener noreferrer"&gt;FTP Server Tester&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.geo-tag.de/generator/en.html" rel="noopener noreferrer"&gt;Geo Tag Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://firstpr.me/" rel="noopener noreferrer"&gt;GitHub First Pull Request Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://googlechrome.github.io/lighthouse/scorecalc/" rel="noopener noreferrer"&gt;Google Lighthouse Scoring Calculator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://search.google.com/test/rich-results" rel="noopener noreferrer"&gt;Google Rich Results Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gwfh.mranftl.com/fonts" rel="noopener noreferrer"&gt;Google Web Fonts Helper&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.giftofspeed.com/gzip-test/" rel="noopener noreferrer"&gt;Gzip and Brotli Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolbox.googleapps.com/apps/har_analyzer/" rel="noopener noreferrer"&gt;HAR Analyzer and Visualizer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://services.w3.org/htmldiff" rel="noopener noreferrer"&gt;HTML Diff&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://caninclude.glitch.me/" rel="noopener noreferrer"&gt;HTML Nesting Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kangax.github.io/html-minifier/" rel="noopener noreferrer"&gt;HTML Optimizer and Minifier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://a11y-tools.com/markup-de-crapulator/" rel="noopener noreferrer"&gt;HTML Optimizer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.debugbear.com/html-size-analyzer" rel="noopener noreferrer"&gt;HTML Size Analyzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://validator.w3.org/" rel="noopener noreferrer"&gt;HTML Validator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://unminify.com/" rel="noopener noreferrer"&gt;HTML, CSS, JavaScript, JSON, and XML Un-Minifier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.labnol.org/urlfetch/" rel="noopener noreferrer"&gt;HTTP Request Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://icomoon.io/app/" rel="noopener noreferrer"&gt;Icon Font, SVG, PDF, and PNG Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.photoroom.com/background-remover/" rel="noopener noreferrer"&gt;Image Background Remover&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cleanup.pictures/" rel="noopener noreferrer"&gt;Image Cleaner&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://compressor.io/" rel="noopener noreferrer"&gt;Image Compressor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.freeconvert.com/image-converter" rel="noopener noreferrer"&gt;Image Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://webspeedtest.cloudinary.com/" rel="noopener noreferrer"&gt;Image Performance Analyzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://validator.w3.org/i18n-checker/" rel="noopener noreferrer"&gt;Internationalization Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://netrenderer.com/" rel="noopener noreferrer"&gt;Internet Explorer Viewer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://latentflip.com/loupe/" rel="noopener noreferrer"&gt;JavaScript Call Stack Visualizer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.jslint.com/" rel="noopener noreferrer"&gt;JavaScript Linter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://obfuscator.io/" rel="noopener noreferrer"&gt;JavaScript Obfuscator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://snorpey.github.io/jpg-glitch/" rel="noopener noreferrer"&gt;JPEG Distorter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://j-brooke.github.io/FracturedJson/" rel="noopener noreferrer"&gt;JSON Formatter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://json-generator.com/" rel="noopener noreferrer"&gt;JSON Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jsoncompare.com/" rel="noopener noreferrer"&gt;JSON Validator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jwt.io/#debugger-io" rel="noopener noreferrer"&gt;JSON Web Token Debugger&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://seositecheckup.com/tools/keywords-cloud-test" rel="noopener noreferrer"&gt;Keyword Cloud Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://keywordtool.io/" rel="noopener noreferrer"&gt;Keyword Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://javier.xyz/pintr/" rel="noopener noreferrer"&gt;Line Drawing Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://validator.w3.org/checklink" rel="noopener noreferrer"&gt;Link Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.siteliner.com/" rel="noopener noreferrer"&gt;Links and Content Analyzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://software.hixie.ch/utilities/js/live-dom-viewer/" rel="noopener noreferrer"&gt;Live DOM Viewer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sitecheck.sucuri.net/" rel="noopener noreferrer"&gt;Malware and Security Scanner&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://search.google.com/test/mobile-friendly" rel="noopener noreferrer"&gt;Mobile-Friendliness Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cloudconvert.com/" rel="noopener noreferrer"&gt;Multi-Purpose File Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bundlejs.com/" rel="noopener noreferrer"&gt;Package Size Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pagespeed.compare/" rel="noopener noreferrer"&gt;PageSpeed Results Comparer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.security.org/how-secure-is-my-password/" rel="noopener noreferrer"&gt;Password Security Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.performancebudget.io/" rel="noopener noreferrer"&gt;Performance Budget Calculator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.canva.com/photo-editor/" rel="noopener noreferrer"&gt;Photo Editor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dotcom-tools.com/ping-test" rel="noopener noreferrer"&gt;Ping Tool (Regional)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.copyscape.com/" rel="noopener noreferrer"&gt;Plagiarism Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://explain.dalibo.com/" rel="noopener noreferrer"&gt;PostgreSQL Query Plan Analyzer and Visualizer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.bennadel.com/coldfusion/privacy-policy-generator.htm" rel="noopener noreferrer"&gt;Privacy Policy and Terms of Service Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pfpmaker.com/" rel="noopener noreferrer"&gt;Profile Picture Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.punycoder.com/" rel="noopener noreferrer"&gt;Punycode Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolcool.org/random-favicon-generator/" rel="noopener noreferrer"&gt;Random Favicon Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://svgco.de/" rel="noopener noreferrer"&gt;Raster Image to SVG Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.experte.com/readability-checker" rel="noopener noreferrer"&gt;Readability Bulk Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hemingwayapp.com/" rel="noopener noreferrer"&gt;Readability Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.freeformatter.com/regex-tester.html" rel="noopener noreferrer"&gt;Regex Tester&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.debuggex.com/" rel="noopener noreferrer"&gt;Regex Visualizer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://viewdns.info/reverseip/" rel="noopener noreferrer"&gt;Reverse IP and Domain Lookup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mxtoolbox.com/ReverseLookup.aspx" rel="noopener noreferrer"&gt;Reverse IP Lookup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://textmechanic.com/text-tools/obfuscation-tools/reverse-text-generator/" rel="noopener noreferrer"&gt;Reverse Text Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.internetmarketingninjas.com/tools/robots-txt-generator/" rel="noopener noreferrer"&gt;robots.txt Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://technicalseo.com/tools/robots-txt/" rel="noopener noreferrer"&gt;robots.txt Validator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://validator.w3.org/feed/" rel="noopener noreferrer"&gt;RSS and Atom Feed Validator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.browserling.com/" rel="noopener noreferrer"&gt;Screenshot Generator for Windows and Android&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://browsershots.org/" rel="noopener noreferrer"&gt;Screenshot Generator for Windows, macOS, and Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://haveibeenpwned.com/" rel="noopener noreferrer"&gt;Security Leak Victim Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://seositecheckup.com/" rel="noopener noreferrer"&gt;SEO Analyzer (SEO SiteCheckup)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://spotibo.com/seo-analyzer" rel="noopener noreferrer"&gt;SEO Analyzer (Spotibo)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.xml-sitemaps.com/" rel="noopener noreferrer"&gt;Sitemap Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://slowfil.es/" rel="noopener noreferrer"&gt;Slow File Download Emulator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://metatags.io/" rel="noopener noreferrer"&gt;Social Markup Previewer and Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.namecheckr.com/" rel="noopener noreferrer"&gt;Social Media and Domain Name Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.sharedcount.com/" rel="noopener noreferrer"&gt;Social Signal Counter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.spf-record.com/spf-lookup" rel="noopener noreferrer"&gt;SPF Record Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.spfwizard.net/" rel="noopener noreferrer"&gt;SPF Record Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ssllabs.com/ssltest/" rel="noopener noreferrer"&gt;SSL Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.howsmyssl.com/" rel="noopener noreferrer"&gt;SSL Client Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.google.com/webmasters/markup-helper/" rel="noopener noreferrer"&gt;Structured Data Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.srihash.org/" rel="noopener noreferrer"&gt;Subresource Integrity Hash Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://vectorpaint.yaks.co.nz/" rel="noopener noreferrer"&gt;SVG Editor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jakearchibald.github.io/svgomg/" rel="noopener noreferrer"&gt;SVG Optimizer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://tagcrowd.com/" rel="noopener noreferrer"&gt;Tag Cloud Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://type-scale.com/" rel="noopener noreferrer"&gt;Type Scale Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.typescriptlang.org/play" rel="noopener noreferrer"&gt;TypeScript Tester&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://r12a.github.io/app-conversion/" rel="noopener noreferrer"&gt;Unicode Code Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mothereff.in/unquoted-attributes" rel="noopener noreferrer"&gt;Unquoted Attribute Value Validator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolbox.googleapps.com/apps/browserinfo/" rel="noopener noreferrer"&gt;User Agent Detector&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fakenamegenerator.com/gen-random-us-us.php" rel="noopener noreferrer"&gt;User Identity Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.uuidgenerator.net/" rel="noopener noreferrer"&gt;UUID Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://template-explorer.vuejs.org/" rel="noopener noreferrer"&gt;Vue.js Template Analyzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mauve.isti.cnr.it/singleValidation.jsp" rel="noopener noreferrer"&gt;WCAG 2.0 and 2.1 Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.textise.net/" rel="noopener noreferrer"&gt;Web Page to Text Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://calibreapp.com/tools/core-web-vitals-checker" rel="noopener noreferrer"&gt;Web Vitals Analyzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.frustrationindex.com/" rel="noopener noreferrer"&gt;WebPageTest Report Frustration Calculator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.accessify.com/" rel="noopener noreferrer"&gt;Website Analyzer (Accessify)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://frontenddogma.com/tools/check/" rel="noopener noreferrer"&gt;Website Analyzer (Frontend Dogma)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nibbler.insites.com/" rel="noopener noreferrer"&gt;Website Analyzer (Nibbler)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://archive.vn/" rel="noopener noreferrer"&gt;Website Archiver (archive.today)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://archive.org/web/" rel="noopener noreferrer"&gt;Website Archiver (Internet Archive)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dotcom-tools.com/china-firewall-test" rel="noopener noreferrer"&gt;Website Blockade Checker for China&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://isitblockedinrussia.com/" rel="noopener noreferrer"&gt;Website Blockade Checker for Russia&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dotcom-tools.com/website-speed-test" rel="noopener noreferrer"&gt;Website Browser and Location Speed Tester&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://digitalbeacon.co/" rel="noopener noreferrer"&gt;Website Carbon Footprint Calculator (Beacon)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.websitecarbon.com/" rel="noopener noreferrer"&gt;Website Carbon Footprint Calculator (Wholegrain Digital)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.experte.com/page-experience" rel="noopener noreferrer"&gt;Website Experience Analyzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://observatory.mozilla.org/" rel="noopener noreferrer"&gt;Website Headers Analyzer (Mozilla)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://securityheaders.com/" rel="noopener noreferrer"&gt;Website Headers Analyzer (Security Headers)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pagespeed.web.dev/" rel="noopener noreferrer"&gt;Website Performance Analyzer (PageSpeed)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.webpagetest.org/" rel="noopener noreferrer"&gt;Website Performance Analyzer (WebPageTest)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://transparencyreport.google.com/safe-browsing/search" rel="noopener noreferrer"&gt;Website Security Checker (Google)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://safeweb.norton.com/" rel="noopener noreferrer"&gt;Website Security Checker (Norton)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://builtwith.com/" rel="noopener noreferrer"&gt;Website Technology Analyzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://translate.google.com/?sl=auto&amp;amp;tl=en&amp;amp;op=websites" rel="noopener noreferrer"&gt;Website Translator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.godaddy.com/domain-value-appraisal" rel="noopener noreferrer"&gt;Website Value Estimator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://w3c.github.io/webvtt.js/parser.html" rel="noopener noreferrer"&gt;WebVTT Validator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://whois.domaintools.com/" rel="noopener noreferrer"&gt;WHOIS Analyzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://myip.ms/" rel="noopener noreferrer"&gt;WHOIS and Hosting Analyzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wppluginchecker.earthpeople.se/" rel="noopener noreferrer"&gt;WordPress Plugin Detector&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.accessify.com/tools-and-wizards/developer-tools/xfn/default.php" rel="noopener noreferrer"&gt;XFN Link Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.freeformatter.com/xml-formatter.html" rel="noopener noreferrer"&gt;XML Formatter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://schneegans.de/sv/" rel="noopener noreferrer"&gt;XML Schema Validator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.freeformatter.com/xml-validator-xsd.html" rel="noopener noreferrer"&gt;XML XSD Checker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codebeautify.org/yaml-validator" rel="noopener noreferrer"&gt;YAML Validator&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is it. 200 amazing tools.&lt;/p&gt;

&lt;p&gt;But.&lt;/p&gt;

&lt;p&gt;Lists like this—of which there are &lt;a href="https://www.google.com/search?q=web+development+tools" rel="noopener noreferrer"&gt;tons&lt;/a&gt;—often amount to somewhat weird, somewhat nonsensical clickbait. There are &lt;em&gt;dedicated, curated, and maintained collections&lt;/em&gt; for this, providing more choice of higher quality.&lt;/p&gt;

&lt;p&gt;One is &lt;a href="https://frontenddogma.com/tools/" rel="noopener noreferrer"&gt;Frontend Dogma’s list of web-based development tools&lt;/a&gt; (&lt;a href="https://frontenddogma.com/topics/tools/" rel="noopener noreferrer"&gt;by tag&lt;/a&gt;). Yes, disclosure, that’s a collection I maintain, and it’s not the only one of its kind—there is &lt;a href="https://tiny-helpers.dev/" rel="noopener noreferrer"&gt;Tiny Helpers&lt;/a&gt;, run by &lt;a href="https://www.stefanjudis.com/" rel="noopener noreferrer"&gt;Stefan Judis&lt;/a&gt;, and there are others, certainly including some &lt;a href="https://www.trackawesomelist.com/" rel="noopener noreferrer"&gt;“Awesome Lists,”&lt;/a&gt; buried under hyped one-off posts of fractions of the value.&lt;/p&gt;

&lt;p&gt;Given these dedicated sites, it’s also easy to take a snapshot of them and present a giga-post like this one. But in many and perhaps most cases, doing so subverts the commitment that goes into &lt;em&gt;maintaining&lt;/em&gt; such collections over time. (In Frontend Dogma’s case, whose resources were based on UITest.com, &lt;a href="https://meiert.com/en/blog/uitestcom/" rel="noopener noreferrer"&gt;over nearly 20 years&lt;/a&gt;.)&lt;/p&gt;

&lt;p&gt;If you’re a fan of link lists like this one, consider looking for (and contributing to) dedicated sites and collections, like Frontend Dogma or Tiny Helpers or a proven Awesome List.&lt;/p&gt;

&lt;p&gt;And if you’re someone who likes to set up and market your own mini-lists (as you’re here, we know that they draw attention), consider supporting and giving back to collections you may get your inspiration from.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;With kudos and compliments to everyone out there who provides and maintains web-based tools—and tool collections.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tooling</category>
      <category>links</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
