Skip to content
Studio · Monaco · Paris
Book a call
Blog

◆ SEO · 6 min read · August 27, 2026

From 83 to 100: accessibility, the GEO lever nobody measures

We sell GEO. And yet our own site was stuck at 83/100 on accessibility, with six ARIA failures and a “malformed accessibility tree”. That tree is precisely what AI agents read. Here is how we got to 100, and why it changes everything for search in 2026.

There is an uncomfortable moment in the life of an agency: discovering that what it sells, it does not apply to the letter at home. Ours arrived one morning, with a mobile Lighthouse report open on our own home page. Best practices: 100. SEO: 100. And then, further down: Accessibility: 83, with six ARIA failures — including one that stings when you sell GEO: “the accessibility tree is malformed”.

We could have swept it under the carpet. We turned it into a case study. Because a score of 83, on an agency site that optimises for AI engines, was not a cosmetic detail: it was a flaw at the heart of our own promise.

Why an accessibility score is also a GEO score

An AI engine — ChatGPT, Perplexity, Google’s AI Overviews, or the agent browsing on your client’s behalf — does not “see” your page the way a human does. It has no eye and no cursor. It reads the page through its structure : ARIA roles, labels, heading hierarchy, landmarks. That representation is theaccessibility tree. It is the same tree a screen reader reads for a visually impaired person, and that an AI reads to understand — and act on — your site.

When that tree is malformed, the screen reader stumbles. So does the AI agent. Google makes no secret of it: its documentation explicitly links a malformed accessibility tree to agentic navigation, the new score measuring an AI assistant’s ability to interpret and operate a page. Ours stood at 50/100. In other words: a site half unreadable to the very engines we claim to master.

The lesson fits in one sentence: in 2026 accessibility is no longer a compliance box. It is thereading infrastructure machines use on your site. GEO starts there.

The diagnosis: 83/100 and six ARIA failures

Lighthouse does not say “your site is inaccessible”. It points at specific elements. Here is what it raised, in plain terms:

  • A a false tablist role : a decorative component carried role="tablist" without the required children — actual tabs. The AI looks for tabs, finds none, and the tree breaks.
  • A aria-hidden hiding focusable elements : a closed modal stayed reachable by keyboard while declaring itself invisible. A contradiction neither a screen reader nor an agent can resolve.
  • A a forbidden ARIA attribute : an aria-label placed on an element whose role does not allow it — a plain row of stars.
  • A visible label different from the accessible name : the language selector displayed “FR / EN” but announced itself as “Switch to English” — two truths for one button.
  • A insufficient contrast on secondary text: elegant to the eye, below the 4.5:1 threshold for the machine.
  • And, as a consequence of all of it, themalformed accessibility tree — the symptom that aggregates the rest.

The six fixes, one by one

None of these needs a rebuild. They are surgical adjustments, provided you know where to look.

  • Neutralise the false tablist. The component was purely visual: we removed role="tablist" and the associated tab roles, and replaced the dummy buttons with plain decorative elements. An ARIA role is only set when it describes something real.
  • Make the modal genuinely inert. Rather than an aria-hidden that lies, we rely on the real hidden attribute (and a display:none that honours it): closed, the modal leaves the tree and the keyboard path. Open, it rejoins both cleanly.
  • Give the star a role. The rating moves from a div with an orphaned aria-label attribute to a role="img" with the label “5 stars out of 5”. The attribute becomes legitimate and the information becomes readable.
  • Align the visible label with the accessible name. The language selector now announces a name consistent with what it shows. One button, one identity.
  • Raise the contrast. We darkened the secondary grey just enough to clear 4.5:1 — without betraying the palette. Elegance survives compliant contrast perfectly well.
  • Check the tree. The five previous fixes settle the sixth: once the contradictions are gone, the tree reforms on its own. We confirmed it with a fresh Lighthouse run.

The result: 100/100, and a site agents can finally read

New report, same home page. Accessibility: 100. Best practices: 100. SEO: 100. The accessibility tree is clean and agentic navigation is restored. All of it for under half a day of work — not a rebuild, targeted fixes.

What matters is not the number for its own sake but what it unlocks: a page screen readers announce without stumbling, that Google structures without ambiguity, and that AI engines can cite as a source because they finally understand it end to end. The same effort serves the human and the machine.

The lesson: accessibility is GEO infrastructure

We keep telling clients that GEO is not settled in the content alone but in the machine readability of the site. Our own score of 83 proved it by absurdity: a site can be fast, well ranked, beautifully designed, and still be half opaque to AI because of a handful of misplaced ARIA attributes.

The good news is that these flaws are measurable, locatable and quickly fixed. The bad news is that most premium sites never look at them — too busy polishing what shows. In 2026, what does not show — the accessibility tree — has become what gets cited. We fixed it at home. We fix it for you.