Google Accessibility Tree & AI
How Chrome’s Accessibility Tree Powers Google’s AI Understanding of Your Website
SEO & AEO Best Practices Guide
With Good vs. Bad Code Examples
Table of Contents
1. What Is the Accessibility Tree?
You have probably heard of the DOM (Document Object Model) — it is the browser’s internal representation of your HTML page. But there is another tree the browser builds on top of the DOM: the Accessibility Tree (or AX Tree).
The accessibility tree is a simplified, semantic representation of a web page. It strips away visual styling, layout hacks, and decorative elements, keeping only the meaningful structural and interactive components. Screen readers use it. Keyboard navigation uses it. And now, Google’s AI systems use it to understand your pages.
Key Insight: The accessibility tree is what Google’s generative AI models (powering AI Overviews, AI Mode, and future AI features) use as their primary signal for understanding page structure and content. If your page has a poor accessibility tree, Google’s AI gets a poor understanding of your content.
2. How Google Leverages the Accessibility Tree for AI
Since 2025, Google has increasingly been transparent about how their AI systems process web pages. Here is what we know from official Google Search Central publications and Chrome developer documentation:
- Chrome’s rendering engine (Blink) generates an accessibility tree for every page it renders
- Google’s Web Rendering Service (WRS) — the same system that renders JavaScript pages for indexing — feeds the accessibility tree to AI models
-
The AX tree provides a cleaner signal than the raw DOM because it:
- Eliminates non-semantic wrapper
<div>s and presentational markup - Identifies landmarks (
<header>,<nav>,<main>,contentinfo) as named regions - Maps headings into a clean hierarchy (h1 → h6)
- Exposes ARIA roles, labels, and descriptions that give AI context about UI elements
- Identifies links, buttons, form controls, and their purposes
- Eliminates non-semantic wrapper
- Google’s AI Overviews and AI Mode use this structured output to extract answers, compare products, summarize content, and generate rich responses
Why This Matters for You: The cleaner and more semantic your accessibility tree, the better Google’s AI can extract, understand, and surface your content in AI-powered search features.
3. SEO Best Practices (Driven by the Accessibility Tree)
3.1 Use Semantic HTML5 Elements
Semantic elements become named landmarks in the accessibility tree. Google’s AI uses these landmarks to understand page layout and find the main content.
✔ GOOD — Semantic HTML5
<header>
<nav aria-label="Main navigation">
<ul><li><a href="/">Home</a></li></ul>
</nav>
</header>
<main>
<article>
<h1>How to Grow Tomatoes</h1>
<p>Content about tomatoes...</p>
</article>
<aside aria-label="Related articles">
<h2>Related</h2>
</aside>
</main>
<footer>...</footer>
✘ BAD — Div Soup
<div class="header">
<div class="nav"><a href="/">Home</a></div>
</div>
<div class="content">
<div class="article">
<div class="title" style="font-size:24px;font-weight:bold">
How to Grow Tomatoes
</div>
<div class="body">Content...</div>
</div>
</div>
3.2 Maintain Proper Heading Hierarchy
Headings are the backbone of the accessibility tree’s content structure. Google’s AI uses heading hierarchy to understand topic relationships, extract answers for specific queries, and generate summaries. Skipped levels or CSS-styled non-headings create confusion.
✔ GOOD
<h1>Complete Guide to Tomato Gardening</h1>
<h2>Choosing Tomato Varieties</h2>
<h3>Determinate vs. Indeterminate</h3>
<h3>Best Varieties for Containers</h3>
<h2>Soil Preparation</h2>
<h3>pH Requirements</h3>
<h3>Nutrient Amendments</h3>
✘ BAD
<h1>Complete Guide to Tomato Gardening</h1>
<h3>Choosing Tomato Varieties</h3> <!-- skipped h2 -->
<div class="subtitle">Determinate vs. Indeterminate</div>
<h2>Soil Preparation</h2>
<h4>pH Requirements</h4> <!-- skipped h3 -->
3.3 Write Meaningful Link Text
In the accessibility tree, links are identified by their accessible name. Google’s AI uses link text to understand relationships between pages, extract canonical sources, and build knowledge graphs. Vague or missing link text creates a dead zone in the AX tree.
✔ GOOD
<a href="/guides/tomato-growing">
Complete guide to growing tomatoes
</a>
<a href="/products/organic-fertilizer">
Shop organic tomato fertilizer
</a>
✘ BAD
<a href="/guides/tomato-growing">Click here</a>
<a href="/products/organic-fertilizer">Read more</a>
<a href="/page123" aria-label="">Learn about tomatoes</a>
3.4 Use ARIA Labels and Descriptions Strategically
ARIA attributes are the primary way to enhance the accessibility tree when native HTML semantics are not enough. Google’s AI reads these to understand UI elements, interactive regions, and context.
- Use
aria-labelto provide a clear name for elements that lack visible text - Use
aria-describedbyto attach explanatory content to complex elements - Use
roleattributes to define non-semantic elements (role="search",role="tabpanel", etc.) - Set
aria-liveregions for dynamically updating content the AI should monitor
✔ GOOD — Strategic ARIA
<nav aria-label="Breadcrumb"
aria-describedby="breadcrumb-help">
<ol><li><a href="/">Home</a></li></ol>
</nav>
<div id="breadcrumb-help" hidden>
Shows your current location in the site hierarchy
</div>
<button aria-label="Close dialog"
aria-describedby="close-hint">
<span aria-hidden="true">×</span>
</button>
✘ BAD — Missing or Misleading ARIA
<div onclick="closeModal()">
<span>×</span>
<!-- no role, no label, invisible to AX tree -->
</div>
<div role="button">Click!</div>
<!-- not focusable, no keyboard handler -->
<div aria-label=" ">Content</div>
<!-- whitespace-only label -->
3.5 Optimize Image Alt Text (Multimodal AI)
Google’s AI Overviews now support multimodal queries — users can upload images and ask questions. The accessibility tree captures alt text as the image’s accessible name. Rich, descriptive alt text helps Google’s AI understand what is in the image, index it properly, and surface it in AI answers.
✔ GOOD
<img src="roma-tomatoes.jpg"
alt="Roma tomatoes ripening on the vine in a
greenhouse, bright red against green leaves"
loading="lazy">
✘ BAD
<img src="roma-tomatoes.jpg"> <!-- no alt -->
<img src="roma-tomatoes.jpg" alt="tomato">
<img src="roma-tomatoes.jpg" alt="img123.jpg">
3.6 Proper Form Controls with Labels
Form controls are exposed as interactive elements in the accessibility tree. Google’s AI uses labeled form fields to understand what data a page collects, which can inform answer extraction for transactional queries.
✔ GOOD
<label for="email">Email address</label>
<input type="email" id="email"
autocomplete="email" required>
<label>
<input type="checkbox" name="subscribe">
Subscribe to newsletter
</label>
✘ BAD
<input type="email" placeholder="Enter email">
<!-- no label element -->
<input type="checkbox"> Subscribe
<!-- checkbox not associated with label -->
4. AEO (Answer Engine Optimization) Best Practices
Answer Engine Optimization goes beyond traditional SEO. It is about structuring content so that AI systems can extract precise answers and present them directly in AI Overviews, voice search results, and chat responses. The accessibility tree is the primary conduit through which Google’s AI extracts these answers.
4.1 Use Landmarks to Define Answer Regions
Wrap answerable content in semantic landmarks. The AI knows where to look.
<main>
<article aria-labelledby="faq-heading">
<h2 id="faq-heading">Frequently Asked Questions</h2>
<section aria-label="How to plant tomatoes">
<h3>How deep should I plant tomato seedlings?</h3>
<p>Plant tomato seedlings deeply, burying 2/3 of the stem
to encourage strong root development.</p>
</section>
</article>
</main>
4.2 Structure Content for Direct Answer Extraction
Google’s AI identifies Q&A pairs in the accessibility tree. A <dt>/<dd> pair, or a heading immediately followed by a paragraph, signals a question-answer relationship.
✔ GOOD — Extractable Answer Format
<dl>
<dt>How often should I water tomatoes?</dt>
<dd>Water deeply 2-3 times per week,
providing 1-2 inches of water each time.</dd>
<dd>Consistent watering prevents
blossom end rot and cracking.</dd>
</dl>
✘ BAD — AI Can’t Extract the Answer
<div class="faq-item">
<div class="faq-q" onclick="toggleAnswer()">
How often should I water tomatoes?
</div>
<div class="faq-a" style="display:none">
Water deeply 2-3 times per week...
</div>
</div>
<!-- Hidden content may never enter the AX tree -->
4.3 Use Structured Data for Entity Recognition
Structured data (schema.org) enriches the accessibility tree with machine-readable entity definitions. Google’s AI uses this to ground answers in real-world entities with known properties.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "How often should I water tomatoes?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Water deeply 2-3 times per week,
providing 1-2 inches of water each time."
}
}]
}
</script>
4.4 Write Concise, Self-Contained Answer Paragraphs
The accessibility tree extracts text within its semantic structure. If your answer spans multiple unrelated sections or relies on anaphora (“it”, “they”) referencing distant text, the AI may misinterpret it.
✔ GOOD — Self-Contained Answer
<section aria-label="Blossom end rot prevention">
<h3>How to Prevent Blossom End Rot in Tomatoes</h3>
<p>Blossom end rot is caused by calcium deficiency
and inconsistent watering. Maintain consistent soil
moisture and ensure soil pH is between 6.2 and 6.8
for optimal calcium uptake.</p>
</section>
✘ BAD — Scattered, Context-Dependent Answer
<!-- Earlier in the page -->
<p>Tomatoes need calcium to prevent rot.</p>
<!-- 50 lines later -->
<p>It is caused by inconsistent watering.</p>
<!-- 100 lines later -->
<p>Fix it by maintaining pH between 6.2 and 6.8.</p>
4.5 Ensure FAQ Content Is Visible in the AX Tree
Any content hidden behind click-to-expand interactions (“Read more”, accordions, tabs) that is not present in the initial HTML may not make it into the accessibility tree during Google’s rendering pass. The WRS runs JavaScript but does so statelessly — interactions that require user state may not trigger.
AEO Best Practice: Include full answer text in the initial HTML, even if hidden behind progressive enhancement. Use <details>/<summary> (which is natively exposed in the AX tree) rather than JavaScript-powered accordions.
✔ GOOD — Details/Summary Element
<!-- Content IS in the initial DOM -->
<details>
<summary>How deep to plant tomatoes?</summary>
<p>Plant seedlings deeply, burying 2/3 of the
stem to encourage strong root development.</p>
</details>
✘ BAD — JavaScript-Loaded Content
<div class="accordion"
data-content-url="/faq/plant-depth">
<div class="accordion-header">
How deep to plant tomatoes?
</div>
</div>
<!-- fetch() on click -- not in AX tree at render -->
5. Accessibility Tree: Good vs. Bad at a Glance
6. Additional Insights & Emerging Trends
6.1 The 2MB Crawl Limit and the AX Tree
Google’s March 2026 blog post “Inside Googlebot: demystifying crawling, fetching, and the bytes we process” clarified that Googlebot fetches only the first 2MB of an HTML page. The accessibility tree is built from this truncated content.
If your critical AI-answerable content or structured data sits below the 2MB cutoff (pushed down by bloated inline images, massive inline CSS/JS, or deep menus), it never enters the accessibility tree and Google’s AI never sees it.
Action: Place <main> content, FAQ sections, structured data, and answer-rich paragraphs in the first 100KB of your HTML. Use external CSS/JS files, not inline blobs.
6.2 Query Fan-Out and the AX Tree
Google’s AI Overviews use a “query fan-out” technique, issuing multiple related searches across subtopics. Each search result goes through the same WRS rendering pipeline and accessibility tree extraction. This means your content competes at a more granular, sub-topic level. Each clearly-labeled section of your page (using proper heading landmarks) can independently appear in AI results. A page with 10 well-structured FAQ items has 10 opportunities to be cited, while a page with one blob of text has just one.
6.3 AI Agents and the Accessibility Tree
Google’s May 2026 guidance on “A new resource for optimizing for generative AI in Google Search” explicitly mentions AI agents as an “quickly emerging and evolving space.” AI agents that browse the web on behalf of users (e.g., “book me a flight”) will rely even more heavily on the accessibility tree than current search features do. Agents need to fill forms, navigate menus, and extract structured information.
Key optimization areas for AI agents: Logical tab order, form labels with autocomplete attributes, clear button purposes (aria-label), consistent navigation landmarks, and well-structured tables.
6.4 Structured Data Still Matters — But It Is Not Required
Google’s 2026 guidance confirms: “You don’t need to create new machine readable files, AI text files, or markup to appear in these features. There is also no special schema.org structured data that you need to add.” However, structured data enriches the accessibility tree with entity relationships and helps Google’s AI “ground” its answers in real-world knowledge rather than just text patterns. It also makes your content eligible for rich results and enhanced display formats.
6.5 The AI Click Quality Effect
Google reported that clicks from AI Overviews are “higher quality” — users spend more time on site and explore more pages. Because the AI correctly extracted and summarized your content (via your clean accessibility tree), visitors arrive with accurate expectations and find exactly what they were looking for.
7. Quick Wins Checklist
- Replace top-level
<div>with proper HTML5 landmarks (<header>,<main>,<nav>,<article>,<aside>,<footer>) - Audit heading hierarchy — no skipped levels, exactly one
<h1>per page - Replace “Click here” / “Read more” links with descriptive link text (3+ words describing the target)
- Add meaningful alt text to every informative image (context-rich, 5–15 words)
- Associate
<label>with every form control (usefor/idbinding or wrapping) - Add
autocompleteattributes to forms (email, name, address, tel, url, etc.) - Convert JS-powered accordions to
<details>/<summary>where possible - Add
FAQPageorQAPageschema markup to Q&A content - Ensure critical content is within the first 2MB of HTML (ideally first 100KB)
- Run an accessibility audit (axe DevTools, Lighthouse, WAVE) and fix every identified issue
- Add
aria-live="polite"to dynamically updating content regions - Use
role="navigation"/role="search"/role="main"on landmark elements - Test your page with a screen reader (VoiceOver, NVDA) to experience how Google sees it
8. Tools to Inspect and Improve Your Accessibility Tree
9. References & Further Reading
- Google Search Central: AI features and your website (May 2026) — developers.google.com/search/docs/appearance/ai-overviews
- A new resource for optimizing for generative AI in Google Search (May 2026) — developers.google.com/search/blog/2026/05/a-new-resource-for-optimizing
- Top ways to ensure your content performs well in Google’s AI experiences (May 2025) — developers.google.com/search/blog/2025/05/succeeding-in-ai-search
- Inside Googlebot: demystifying crawling, fetching, and the bytes we process (March 2026) — developers.google.com/search/blog/2026/03/crawler-blog-post
- Introducing Search Generative AI performance reports in Search Console (June 2026) — developers.google.com/search/blog/2026/06/gen-ai-performance-reports
- Chrome DevTools Accessibility Reference — developer.chrome.com/docs/devtools/accessibility
- Web Content Accessibility Guidelines (WCAG) 2.2 — w3.org/TR/WCAG22
- Accessible Rich Internet Applications (WAI-ARIA) 1.2 — w3.org/TR/wai-aria-1.2
- The Chromium Accessibility Tree — chromium.org/developers/design-documents/accessibility