Dev.to WebDev 🛠 Dev 👁 0 📖 3 min read

The Absent Layer of app.onepassapps.com: 65 HTML Element Names That Never Appear on Any of Our 56 Pages

I work on OnePassApps, so this is our own site and our own build. Every count below was taken from the live pages today, 9 November 2026, with one plain HTTPS fetch per URL and a real HTML parser rather than a regular ex

I work on OnePassApps, so this is our own site and our own build. Every count below was taken from the live pages today, 9 November 2026, with one plain HTTPS fetch per URL and a real HTML parser rather than a regular expression.

Recent posts on this account counted what our served HTML contains. This one counts what it leaves out.

How the census was taken

I read the sitemap, took the 56 URLs it lists, fetched each page once and handed the response to Python's html.parser. No session, no cookies, no JavaScript, one pass over the markup.

  • 56 pages fetched, every one HTTP 200, 1,380,119 bytes of HTML in total
  • 10,897 start tags parsed
  • 43 distinct tag names across the whole fleet
  • 87 element names checked: 22 appear, 65 never do
  • 54 attribute names checked: 19 appear, 35 never do
  • 74 distinct attribute names used in total

The 65 names that never appear

Form and control elements: form, label, fieldset, legend, datalist, output, select, option, textarea, button and input.

Table elements: table, thead, tbody, tfoot, tr, th, td, caption, col and colgroup.

Media and embed elements: picture, source, canvas, audio, video and iframe.

Disclosure and block elements: details, summary, dialog, menu, aside, figure, figcaption, blockquote, hr, pre, dl, dt and dd.

Inline text elements: mark, time, abbr, dfn, cite, q, bdi, bdo, wbr, ruby, data, ins, del, sub, sup, kbd, samp, var, small and em.

Document and progress elements: noscript, slot, base, progress and meter.

That is 65 of the 87 element names we checked never appearing on any page. The 22 that do are the skeleton: html, head, title, body, main and nav on every page, section on 55 of them, ul and li almost everywhere, and the meta and link tags that carry the search shell.

The 35 attribute names that never appear

dir, srcset, loading, decoding, fetchpriority, referrerpolicy, hreflang, media, http-equiv, async, defer, value, placeholder, checked, disabled, multiple, selected, required, autocomplete, spellcheck, colspan, rowspan, scope, headers, open, controls, loop, muted, playsinline, preload, poster, srcdoc, sandbox, allow and allowfullscreen.

Two of those absences are worth pausing on: no page carries a srcset attribute and no page carries a loading attribute, so none of the 57 images we serve is offered in alternative widths and none of them is marked lazy.

Others follow from the elements themselves: with no form there is nothing for value, placeholder, checked, disabled, multiple, selected, required or autocomplete to sit on, and with no table there is nothing for colspan, rowspan, scope or headers.

The edges

  • The only code element in the whole site sits on https://app.onepassapps.com/terms.
  • 55 pages carry one image each and 1 page carries 2, so 57 images in total.
  • Every page carries exactly one style element (56 across 56 pages), 267 script elements, and 28 meta tags per page.
  • nav appears 125 times and main 56 times, once per page for the latter; header appears 46 times across 23 pages, footer on 23 pages and article on 24.
  • 33 pages carry a template element.

What these numbers do not say

They count the served HTML only. The fallback card is what a crawler and a reader without JavaScript get; the panel replaces the fallback card after JavaScript runs, and nothing here counts that panel. One build, one day, one IP.

An earlier post on this account measured the form-control half of this census: The Control Layer of app.onepassapps.com. This one is the wider count of what never arrives.

Try the apps

Open the OnePassApps home page and pick a tool. Everything runs in the tab: onepassapps.com

Read the guides

Each app has a step-by-step guide that names the controls: the guides

📰 Read the original article on Dev.to WebDev

Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.