Native interactive controls

A div with a click handler is invisible to an agent driving the page by keyboard or accessibility tree.

Standard
Recommended

Who supports it

  • ClaudeSupported (announced)

    Published 1 Aug 2026 · last checked 9 Oct 2026: Claude API docs: Browser use toolread_page 'Returns the page's accessibility tree as text' (role + accessible name per element, e.g. button "Search"); Claude also uses screenshots. Date is approximate, taken from the toolset version id browser_toolset_20260801; page shows no date. The same read_page tool is exposed by the Claude in Chrome extension. read_page filter 'interactive' returns only interactive elements by role.

  • ChatGPT AtlasSupported (announced)

    Published 1 Sept 2026 · last checked 9 Oct 2026: OpenAI Help Center: Publishers and Developers - FAQHelp Center article shows 'Updated: last month' as of 2026-10-09 (month-only date). Text: 'ChatGPT Atlas uses ARIA tags—the same labels and roles that support screen readers—to interpret page structure and interactive elements.' Recommends descriptive roles on buttons, menus and forms.

  • Gemini in ChromePartial support

    Published 5 May 2026 · last checked 9 Oct 2026: Chrome for Developers: Accessibility for agents (Lighthouse Agentic browsing)Chrome team guidance for agents in general ('Agents review the accessibility tree to identify interactive elements'; 'Agents rely on the accessibility tree ... as their primary data model', toolkit blog 2026-06-22). It does not name Gemini in Chrome explicitly, hence partial.

24 others: no evidence yet. See every agent and browser

What it checks

The extension counts the interactive elements on the rendered page and sorts them into two groups:

  • Native controls: <button>, <a href>, <select>, <textarea> and <input> (other than hidden inputs).
  • Non-native controls: anything else with an onclick attribute, role="button" or role="link".

Hidden elements are ignored. So is a tabindex="-1" child inside a native or focusable parent, since that is part of a larger widget rather than a separate control.

An agent driving the page through the keyboard or the accessibility tree can reach native controls. It often cannot reach, or even recognise, a <div> or <span> that only responds to clicks.

Results

Status When
Pass Every interactive element is a native control
Warn Some are non-native, up to 25% of all interactive elements
Fail More than 25% of interactive elements are non-native
N/A The page has no interactive elements
Unmeasured The extension could not read the page (open it in the active tab)

The result lists locators for the non-native elements, such as div.icon-btn, so you can find them.

How to fix

Replace click handlers on generic elements with the element that does the job:

<!-- Before -->
<div class="icon-btn" onclick="addToBasket()">Add to basket</div>

<!-- After -->
<button type="button" onclick="addToBasket()">Add to basket</button>

Use <a href> for anything that navigates and <button> for anything that acts. Both are focusable and exposed to agents without extra ARIA.

Once the controls are native, check they have names: Accessible names on controls.

Support by agent and browser

Announced means the vendor’s own docs or announcement say so. Published is the date on the vendor’s own page, where it has one. Checked is the last time our weekly research found that page still saying so.

AgentStatusSource
AI assistants
Claude AnthropicSupported (announced)

Claude API docs: Browser use tool Published · Checked read_page 'Returns the page's accessibility tree as text' (role + accessible name per element, e.g. button "Search"); Claude also uses screenshots. Date is approximate, taken from the toolset version id browser_toolset_20260801; page shows no date. The same read_page tool is exposed by the Claude in Chrome extension. read_page filter 'interactive' returns only interactive elements by role.

AI browsers
ChatGPT Atlas OpenAISupported (announced)

OpenAI Help Center: Publishers and Developers - FAQ Published · Checked Help Center article shows 'Updated: last month' as of 2026-10-09 (month-only date). Text: 'ChatGPT Atlas uses ARIA tags—the same labels and roles that support screen readers—to interpret page structure and interactive elements.' Recommends descriptive roles on buttons, menus and forms.

Gemini in Chrome GooglePartial support

partial Chrome for Developers: Accessibility for agents (Lighthouse Agentic browsing) Published · Checked Chrome team guidance for agents in general ('Agents review the accessibility tree to identify interactive elements'; 'Agents rely on the accessibility tree ... as their primary data model', toolkit blog 2026-06-22). It does not name Gemini in Chrome explicitly, hence partial.

No evidence yet24
  • ChatGPT
  • Gemini
  • Perplexity
  • Copilot
  • Meta AI
  • Comet
  • Dia
  • Edge Copilot Mode
  • Claude Code
  • Cursor
  • Codex
  • GitHub Copilot
  • Windsurf
  • CCBot
  • Applebot
  • Amazonbot
  • Bytespider
  • Cohere
  • Mistral
  • DuckAssist
  • Chrome
  • Edge
  • Firefox
  • Safari

Adoption on the top 100 sites

83 of 100 measured sites implement it

Scanned 23 Oct 2026 with the Sitebulb Labs extension, against the Tranco list (tranco-56Z8N).

9 Oct 2026: 85%12 Oct 2026: 82%23 Oct 2026: 83%
9 Oct 2026 85% → 23 Oct 2026 83%
Sites implementing it83
  1. #1 google.com
  2. #2 cloudflare.com
  3. #3 aws.amazon.com (via amazonaws.com)
  4. #5 gstatic.com
  5. #8 googleapis.com
  6. #9 microsoft.com
  7. #11 youtube.com
  8. #12 apple.com (with warnings)
  9. #13 instagram.com (with warnings)
  10. #15 mail.ru (with warnings)
  11. #16 x.com (via twitter.com)
  12. #18 linkedin.com
  13. #20 dzen.ru
  14. #23 googletagmanager.com
  15. #24 azure.microsoft.com (via azure.com) (with warnings)
  16. #26 m365.cloud.microsoft (via office.com)
  17. #32 github.com
  18. #33 wikipedia.org
  19. #37 fastly.com (via fastly.net)
  20. #39 whatsapp.com (via whatsapp.net)
  21. #42 bing.com (with warnings)
  22. #43 netflix.com
  23. #44 triplinkintl.com (with warnings)
  24. #45 googleusercontent.com
  25. #48 gandi.net (with warnings)
  26. #50 marketingplatform.google.com (via doubleclick.net)
  27. #55 wordpress.org
  28. #56 teams.live.com (via skype.com)
  29. #57 cloudflare.net
  30. #59 goo.gl
  31. #60 digicert.com
  32. #67 domains.google (via googledomains.com)
  33. #68 zoom.com (via zoom.us)
  34. #69 uk.yahoo.com (via yahoo.com)
  35. #70 sso.myfritz.net (via myfritz.net)
  36. #71 endpoints.news
  37. #72 api.whatsapp.com (via wa.me)
  38. #75 roblox.com (with warnings)
  39. #76 opera.com (with warnings)
  40. #80 baidu.com
  41. #83 ya.ru (via yandex.net)
  42. #84 nginx.org
  43. #85 ntp.org
  44. #86 msn.com
  45. #87 qq.com (with warnings)
  46. #90 vimeo.com
  47. #91 primevideo.com (via amazonvideo.com)
  48. #93 bunny.net (via b-cdn.net)
  49. #94 blogger.com (via blogspot.com)
  50. #95 mozilla.org
  51. #96 f5.com (with warnings)
  52. #98 telegram.org (via t.me)
  53. #99 store.epicgames.com (via epicgames.com)
  54. #101 wordpress.com
  55. #103 reddit.com (with warnings)
  56. #106 sentry.io (with warnings)
  57. #107 letsencrypt.org (via lencr.org)
  58. #109 ui.com
  59. #110 european-union.europa.eu (via europa.eu)
  60. #112 chatgpt.com (with warnings)
  61. #116 bitly.com (via bit.ly) (with warnings)
  62. #117 ipify.org
  63. #120 samsung.com
  64. #122 intuit.com (with warnings)
  65. #127 openai.com
  66. #128 one.one.one.one (via cloudflare-dns.com) (with warnings)
  67. #130 registrar-servers.com
  68. #131 pages.github.com (via github.io)
  69. #132 dropbox.com
  70. #135 discord.com (via discord.gg) (with warnings)
  71. #136 developer.adobe.com (via adobe.io)
  72. #139 apache.org (with warnings)
  73. #140 android.com (with warnings)
  74. #141 nih.gov
  75. #144 vk.ru (with warnings)
  76. #150 t-online.de
  77. #152 forms.gle
  78. #153 webex.com (with warnings)
  79. #154 snapchat.com
  80. #156 godaddy.com
  81. #158 kaspersky.co.uk (via kaspersky.com)
  82. #159 firebase.google.com (via crashlytics.com)
  83. #160 tumblr.com

Overview

8/9

Established

Widely supported and widely deployed.

How this rating is worked out8 of 9 points
FactorPointsWhy
Vendor support2 / 32 vendors supporting, 1 partly or planned
Top-100 adoption3 / 383% of measured sites
Spec maturity3 / 3Published standard

8 or more points is Established, 5 to 7 is Gaining traction, 2 to 4 is Speculative and under 2 is Stalled. A feature is also Stalled when more vendors have said no than yes. Read the spec.

Community insights

No community insights for this feature yet.

Quotes are from public posts, checked against the original before they appear here. Suggest an insight, or ask for yours to be removed.