---
title: "The Semantic Layer Nobody Maintained"
canonical: "https://current.tinyfish.ai/issue/49/echoes/article/40508/the-semantic-layer-nobody-maintained"
publication: "TinyFish"
publisher: "TinyFish"
language: "en-US"
guide: "https://current.tinyfish.ai/llms.txt"
author: "Sable Whitford"
author_url: "https://current.tinyfish.ai/team/201"
issue: 49
section: "echoes"
section_name: "Echoes"
published: 2026-10-01
word_count: 223
source_links: 4
---

# The Semantic Layer Nobody Maintained

*By [Sable Whitford](<https://current.tinyfish.ai/team/201/markdown>)*

*October 1, 2026*

[Read on the website](<https://current.tinyfish.ai/issue/49/echoes/article/40508/the-semantic-layer-nobody-maintained>)

Around 2005, Ajax let web pages update without reloading, and screen readers lost the plot. Content changed with no signal that anything had happened. The W3C's fix was [ARIA](https://www.w3.org/WAI/standards-guidelines/aria/): attributes developers could attach to HTML elements to declare what they *were* and what *state* they were in. A `div` styled as a button could finally say so. Browsers translated these annotations into an **accessibility tree**, a parallel semantic map of the page that assistive technology consumed instead of raw HTML.

ARIA worked when developers kept it current. Most teams didn't, because their sighted users never noticed the rot.

AI web agents now navigate interfaces through that same tree. They're parsing a semantic layer that was treated as someone else's problem for twenty years, built and neglected by teams whose real job was always visual rendering.

**First draft:** September 2006. Became a W3C Recommendation [eight years later](https://www.w3.org/press-releases/2014/aria/), March 2014.

**Scale:** 82.7% of the top million home pages use ARIA, averaging 133 attributes per page ([WebAIM Million, 2026](https://webaim.org/projects/million/)).

**Error rates:** Pages *with* ARIA average 59.1 accessibility errors. Pages *without* average 42. More annotation, more mistakes.

**W3C's first rule of ARIA:** Don't use it if a native HTML element already does the job.

**In practice:** "No ARIA is better than bad ARIA." A wrong `role` attribute doesn't fail silently — it [lies to whatever's consuming it](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA).

## More

- [Echoes — Issue 49](<https://current.tinyfish.ai/issue/49/echoes/markdown>)
- [Issue 49](<https://current.tinyfish.ai/issue/49/markdown>)
- [Publication guide](<https://current.tinyfish.ai/llms.txt>)