Accessibility / ARIA / Conformance DSLs Family Index
type: language-family-index family: accessibility-aria languages_catalogued: 26 tags: [language-reference, family-index, accessibility-aria, wai-aria, wcag, axe-core, ssml, webvtt, ttml, uia, nsaccessibility, epub-accessibility]
Accessibility / ARIA / Conformance — Family Index
Family overview
Accessibility DSLs are the textual languages, attribute vocabularies, and rule-criterion taxonomies used to describe how content and software expose semantics to assistive technology — and to describe whether a given artefact conforms to a given criterion. Unlike most other Tier-3 families, this one is dominated not by a single linguistic core but by two parallel grammars that have to align: the expression grammar (ARIA attributes, HTML semantics, AOM, platform accessibility APIs like UIA / NSAccessibility / AT-SPI) and the conformance grammar (WCAG success-criterion IDs 1.1.1, 2.4.6; Section 508 FPC1xx codes; EN 301 549 clauses; axe-core/WAVE/Pa11y rule IDs). The expression side is what developers write; the conformance side is what auditors and the law speak.
The web has a clear focal point. WAI-ARIA 1.2 (W3C Recommendation, 6 June 2023) is the production-current ARIA standard, and WAI-ARIA 1.3 has been in Working Draft since 23 January 2024, introducing roles like comment, suggestion, and mark for collaborative editing surfaces. ARIA’s grammar is consumed by every browser’s accessibility-tree builder, which then maps it onto whatever platform API the operating system exposes — Microsoft UIA on Windows, NSAccessibility on macOS, AT-SPI on Linux, AccessibilityServiceConfig on Android. The Accessibility Object Model (AOM, in the W3C/WICG) is the JS-side DSL for direct accessibility-tree manipulation, with the WebDriver computedRole/computedLabel slice already shipping in all major browsers.
On the conformance side, WCAG 2.2 became a W3C Recommendation on 5 October 2023, adding nine success criteria (focus-not-obscured, dragging-movements, target-size-minimum, etc.). WCAG 3.0 is still a Working Draft as of the March 2026 update — now built around 174 requirements (formerly called “outcomes”) and a rating-based conformance model that breaks compatibility with WCAG 2.x. Worldwide legal frameworks orbit WCAG: Revised Section 508 (USA, 2017) references WCAG 2.0 AA; EN 301 549 v3.2.1 (Europe, March 2021, harmonised under the European Accessibility Act enforced 28 June 2025) references WCAG 2.1 AA; an EN 301 549 update incorporating WCAG 2.2 is in progress. The testing-tool layer (axe-core, WAVE, Pa11y, Lighthouse) each has its own rule-ID taxonomy that maps back to WCAG criteria.
Adjacent to ARIA/WCAG sit the speech-synthesis DSLs (SSML 1.1, PLS 1.0) — W3C standards from 2010/2008 that every major TTS engine (Amazon Polly, Google, Azure, OpenAI to varying degrees) still honours — and the caption/subtitle zoo (WebVTT, TTML2, IMSC 1.2 / IMSC Text 1.3, SRT, CEA-608/708), the EPUB Accessibility 1.1 conformance profile (W3C Recommendation, 17 October 2024) layered on top of EPUB 3.3, and the publishing-side accessible-book formats (DAISY, NIMAS) maintained by the DAISY Consortium.
In our deep library
Cross-link related Tier-3 families:
- api-description — most accessibility specs are XML/JSON schemas with formal grammars; ARIA roles + states are effectively a controlled attribute vocabulary
- i18n-locale —
hreflang, language tagging (BCP 47), and pronunciation lexicons (PLS) all sit on locale infrastructure - document-typesetting — LaTeX → tagged PDF / PDF-UA accessibility pipeline
- print-page-description — PDF/UA (ISO 14289-1, -2) cross-listed there
- notation-spec — WCAG criteria IDs (
1.1.1,2.4.6) are a structured rule taxonomy / spec-naming DSL - math-notation — MathML accessibility (MathSpeak, Nemeth Braille) overlap
- javascript — AOM is JS DSL; axe-core, Pa11y, Lighthouse are JS-hosted; HTML and CSS
prefers-*media queries (an accessibility-policy mini-DSL) sit on top of the JS deep note as the web-platform layer - api-description — TTML, DAISY, EPUB, SSML, PLS are all XML applications; their schema-description infrastructure is catalogued there
Tier 3 family table — Web accessibility (ARIA + HTML semantics + AOM)
| Standard | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| WAI-ARIA 1.2 | 6 June 2023 (W3C Rec) | W3C ARIA Working Group | Attribute vocabulary (role, aria-*) for HTML/SVG | W3C Recommendation, production-current | https://www.w3.org/TR/wai-aria-1.2/ |
| WAI-ARIA 1.3 | 23 Jan 2024 (FPWD) | W3C ARIA WG | Adds comment, suggestion, mark, expanded errormessage handling | Working Draft (editor’s draft Feb 2026) | https://www.w3.org/TR/wai-aria-1.3/ |
| HTML Accessibility API Mappings (HTML-AAM) | 2014+ | W3C ARIA WG | Spec for how HTML elements map to platform a11y APIs | Active, parallel to ARIA | https://www.w3.org/TR/html-aam-1.0/ |
| Accessibility Object Model (AOM) | 2017+ | W3C / WICG (Google, Apple, Mozilla) | JS DSL for direct accessibility-tree manipulation; multi-phase | Incubation in WICG; WebDriver computedRole/computedLabel ships in all major browsers | https://wicg.github.io/aom/ |
| Accessible Name & Description Computation (AccName) 1.2 | Dec 2023 | W3C ARIA WG | Algorithm spec for computing accessible names from DOM | W3C Recommendation | https://www.w3.org/TR/accname-1.2/ |
| ARIA Authoring Practices Guide (APG) | 2013+ | W3C ARIA WG | Pattern recipes (combobox, treegrid, tabs) using ARIA | Active Note, continuously updated | https://www.w3.org/WAI/ARIA/apg/ |
Tier 3 family table — Conformance / WCAG taxonomy
| Standard | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| WCAG 2.1 | 5 June 2018 | W3C AG WG | Success-criterion ID DSL (1.1.1…4.1.3); 78 SCs | W3C Recommendation (superseded by 2.2 but still legally referenced by EN 301 549 v3.2.1) | https://www.w3.org/TR/WCAG21/ |
| WCAG 2.2 | 5 Oct 2023 | W3C AG WG | Adds 9 SCs (focus-not-obscured, target-size-minimum, dragging-movements, etc.) | W3C Recommendation, current published baseline | https://www.w3.org/TR/WCAG22/ |
| WCAG 3.0 | 21 Jan 2021 (first WD) | W3C AG WG | Rating-based conformance, 174 requirements (renamed from outcomes); breaks 2.x model | Working Draft (March 2026 update); years from Rec | https://www.w3.org/TR/wcag-3.0/ |
| Section 508 (Revised) | 18 Jan 2017 final rule | U.S. Access Board | FPC1xx codes; references WCAG 2.0 AA by reference | In force; still pegged to WCAG 2.0 AA in 2026 | https://www.access-board.gov/ict/ |
| EN 301 549 v3.2.1 | March 2021 | ETSI / CEN / CENELEC | EU ICT accessibility harmonised standard; references WCAG 2.1 AA | Harmonised standard under European Accessibility Act (enforced 28 June 2025); v4 incorporating WCAG 2.2 in progress | https://www.etsi.org/deliver/etsi_en/301500_301599/301549/03.02.01_60/en_301549v030201p.pdf |
| ATAG 2.0 | 24 Sept 2015 | W3C AG WG | Authoring Tool Accessibility Guidelines | W3C Recommendation; companion to WCAG | https://www.w3.org/TR/ATAG20/ |
| axe-core rule IDs | 2015+ | Deque Systems | ~100 rule IDs (aria-roles, color-contrast, landmark-one-main); maps to WCAG 2.0/2.1/2.2, S508, EN 301 549 | Very active, ~minor release every 3–5 months | https://github.com/dequelabs/axe-core/blob/develop/doc/rule-descriptions.md |
| WAVE rule IDs | 2001+ | WebAIM (Utah State) | Error/alert/feature IDs (alt_missing, label_missing_input) | Active, browser extension + API | https://wave.webaim.org/api/docs |
| Pa11y rule IDs | 2013+ | Team Pa11y (Nature, then community) | Wraps axe-core + HTML_CodeSniffer rule sets | Active, headless-Chromium CLI | https://pa11y.org/ |
| Lighthouse accessibility audits | 2016+ | Audit IDs bundled into Lighthouse; uses axe-core under the hood | Active, ships in Chrome DevTools | https://developer.chrome.com/docs/lighthouse/accessibility/ | |
| PAC (PDF Accessibility Checker) checkpoints | 2004+ (PAC) / 2021 (PAC 2024) | access for all foundation (Switzerland) | Checkpoint IDs for PDF/UA + Matterhorn Protocol mapping | Active; reference tool for PDF/UA | https://pdfua.foundation/en/pdf-accessibility-checker-pac/ |
Tier 3 family table — Speech / TTS
| Standard | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| SSML 1.1 | 7 Sept 2010 (W3C Rec) | W3C Voice Browser WG | XML markup for controlling synthesised speech (<prosody>, <phoneme>, <lexicon>) | W3C Recommendation; honoured by every major TTS engine (Polly, Azure, Google) | https://www.w3.org/TR/speech-synthesis11/ |
| PLS 1.0 (Pronunciation Lexicon) | 14 Oct 2008 (W3C Rec) | W3C Voice Browser WG | XML lexicon format referenced by SSML <lexicon>; IPA + vendor alphabets | W3C Recommendation; AWS Polly et al. consume it | https://www.w3.org/TR/pronunciation-lexicon/ |
| NVDA / JAWS speech dictionaries | NVDA 2006+ / JAWS 1995+ | NV Access / Freedom Scientific (Vispero) | Vendor-specific pronunciation override DSLs (.dic / .jdf files) | Active, screen-reader-specific | https://www.nvaccess.org/files/nvda/documentation/userGuide.html |
| VoiceXML 2.1 | 19 June 2007 | W3C Voice Browser WG | Dialog-style markup; voice-side accessibility | Legacy but still referenced; superseded operationally by modern conversational stacks | https://www.w3.org/TR/voicexml21/ |
Tier 3 family table — Caption / subtitle
| Standard | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| WebVTT | 2010 (Hixie draft) | WHATWG → W3C Timed Text WG | Web-native caption format (.vtt); cues + simple styling | W3C Candidate Recommendation, universally implemented in browsers | https://www.w3.org/TR/webvtt1/ |
| TTML2 | 8 Nov 2018 (W3C Rec) | W3C Timed Text WG | XML timed-text language; broadcast/IMSC base | W3C Recommendation | https://www.w3.org/TR/ttml2/ |
| IMSC 1.2 | 4 Aug 2020 (W3C Rec) | W3C Timed Text WG | TTML profile for subtitles/captions; broadcast media | W3C Recommendation; IMSC Text 1.3 in CR-Snapshot (2025) | https://www.w3.org/TR/ttml-imsc1.2/ |
| TTML2 Dubbing & Audio Description Profiles | 2025 (updated CR) | W3C Timed Text WG | TTML2 profiles for dubbing scripts + audio description | Candidate Recommendation | https://www.w3.org/TR/ttml-dapt/ |
| SRT (SubRip) | ~2000 | SubRip author Zuggy (informal) | Plain-text cue format; ubiquitous, no formal owner | De facto standard; no formal spec | https://en.wikipedia.org/wiki/SubRip |
| CEA-608 / CEA-708 | 1980 / 2000 | CEA (Consumer Electronics Association) | TV-broadcast caption formats (line-21 / DTV) | In force for US broadcast TV; mapped into TTML/IMSC for delivery | https://www.cta.tech/ |
Tier 3 family table — Platform / API
| Standard | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| Microsoft UI Automation (UIA) | 2005 (Vista) | Microsoft | Windows accessibility tree + control patterns (Invoke, Toggle, Value, etc.) | Active, primary Windows a11y API; MSAA/IAccessible/IAccessible2 are legacy | https://learn.microsoft.com/en-us/windows/win32/winauto/entry-uiauto-win32 |
| NSAccessibility (macOS) | 2002 (Mac OS X 10.2) | Apple | Objective-C / Swift protocols + attribute names (NSAccessibilityRoleAttribute etc.) | Active | https://developer.apple.com/documentation/appkit/nsaccessibility |
| AccessibilityServiceConfig (Android) | 2009 (Android 1.6) | XML config + AccessibilityNodeInfo tree | Active, primary Android a11y vocabulary | https://developer.android.com/reference/android/accessibilityservice/AccessibilityService | |
| AT-SPI 2 (Linux) | 2011 | GNOME / freedesktop.org | D-Bus accessibility API; Linux equivalent of UIA/NSA | Active | https://www.freedesktop.org/wiki/Accessibility/AT-SPI2/ |
| MSAA / IAccessible / IAccessible2 | 1997 / 2007 | Microsoft / Linux Foundation | Legacy Windows COM accessibility APIs | Legacy, still in browsers as bridges; UIA preferred | https://accessibility.linuxfoundation.org/a11yspecs/ia2/docs/html/ |
CSS prefers-* media queries | 2017+ | W3C CSS Media Queries 5 | prefers-reduced-motion, prefers-contrast, prefers-color-scheme, prefers-reduced-transparency | Active, broadly supported | https://www.w3.org/TR/mediaqueries-5/ |
Tier 3 family table — Document a11y / publishing
| Standard | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| EPUB Accessibility 1.1 | 17 Oct 2024 (W3C Rec) | W3C EPUB 3 WG | Conformance + discoverability spec for EPUB 3.3; accessibilityFeature / accessibilityHazard metadata | W3C Recommendation; 1.1.1 in WD (Mar 2025) | https://www.w3.org/TR/epub-a11y-11/ |
| PDF/UA-1 (ISO 14289-1) | July 2012 | ISO | Universal Accessibility profile for PDF (tagged PDF requirements) | In force (2014 corrigendum); cross-listed in print-page-description | https://www.iso.org/standard/64599.html |
| PDF/UA-2 (ISO 14289-2) | Dec 2024 | ISO | Universal Accessibility profile for PDF 2.0 | Published; rolling adoption | https://www.iso.org/standard/82278.html |
| DAISY (Digital Accessible Information SYstem) | 1996+ | DAISY Consortium | XML-based accessible-book format; MathML + SMIL navigation | Active but mostly superseded by EPUB-based DAISY since DAISY 4 / EPUB 3 alignment | https://daisy.org/ |
| NIMAS (USA) | 2006 | US Dept. of Education | National Instructional Materials Accessibility Standard; DAISY-derived XML for K-12 textbooks | In force in US K-12 | https://aem.cast.org/navigating/nimas-fileset-elements |
| Schema.org accessibility metadata | 2013+ | Schema.org (Google/Microsoft/Yahoo/Yandex) | accessibilityAPI, accessibilityControl, accessibilityFeature, accessibilityHazard, accessibilitySummary | Active, used by EPUB + general web SEO | https://schema.org/docs/accessibility-properties.html |
| MathML 4 + MathSpeak / Nemeth | MathML 4 (Mar 2023 CR) / MathSpeak 2008 / Nemeth 1952 | W3C / Abraham Nemeth | Math-speech rendering rule DSLs; consumed by JAWS, NVDA, MathPlayer, MathJax | Active; MathML 4 Candidate Rec | https://www.w3.org/TR/mathml4/ |
Notable threads
-
The two-grammar problem: expression vs conformance. Unlike most language families, accessibility has two intersecting DSLs that have to agree. The expression layer (ARIA roles + states, AOM, UIA patterns, NSAccessibility attributes) is what developers write to make widgets accessible; the conformance layer (WCAG 2.2 success-criterion IDs, S508 FPC1xx codes, EN 301 549 clause numbers, axe-core rule IDs) is what auditors, regulators, and litigators speak. The bridge between them is implicit mapping — every WCAG criterion implicitly assumes some ARIA/HTML expression, and every axe-core rule is a concrete computable check that one criterion is met. No single artefact captures the full mapping; each tool vendor ships its own crosswalk.
-
WCAG 2.1 → 2.2 → 3.0: a generational break is coming. WCAG 2.1 (June 2018) added 17 SCs covering mobile, low-vision, and cognitive. WCAG 2.2 (October 2023) added 9 more — most consequentially the target-size, dragging-movements, and focus-not-obscured criteria — and is now the published baseline. WCAG 3.0 is fundamentally different: as of the March 2026 working draft, it abandons the 2.x A/AA/AAA pass/fail model in favour of 174 requirements (renamed from “outcomes” in this draft) graded by rating scales, and explicitly intended to cover non-web ICT alongside web content. The 3.0 timeline is years out — the AG WG plans to publish a projected timeline by April 2026, but Rec status is not expected before late decade — so WCAG 2.2 will remain the operative legal anchor for a long time.
-
The testing-tool rule-ID fragmentation. axe-core, WAVE, Pa11y, Lighthouse, IBM Equal Access Accessibility Checker, Tenon, ARC Toolkit, and Microsoft Accessibility Insights all expose their own rule-ID taxonomies. They all target WCAG criteria but with different granularity (axe has ~100 rules; WAVE groups things differently; Lighthouse bundles axe-core but reports under its own audit IDs). The W3C ACT Rules community group is the standardisation effort to define vendor-neutral “Accessibility Conformance Testing” rules with stable IDs that vendors can claim conformance against; adoption is partial but growing. There is still no canonical single taxonomy and likely won’t be one.
-
Section 508 and EN 301 549: the WCAG-by-reference lattice. Revised Section 508 (USA, 2017 final rule) references WCAG 2.0 AA — not 2.1 or 2.2 — meaning federal procurement compliance in 2026 is still pegged to a 2008 standard. EN 301 549 v3.2.1 (Europe, March 2021), harmonised under the European Accessibility Act enforced 28 June 2025, references WCAG 2.1 AA. An EN 301 549 v4 update incorporating WCAG 2.2 is in progress. The pattern is consistent: national/regional law lags WCAG by one to two versions, because legal references to a Recommendation cannot float — they must point at a specific dated revision. This is why WCAG criterion IDs are so stable: changing them would break every legal reference downstream.
-
SSML and PLS: a 2010-era W3C duo that the AI-voice era still uses. SSML 1.1 (September 2010) and PLS 1.0 (October 2008) have not been revised, yet every commercial TTS engine — Amazon Polly, Google Cloud TTS, Azure Speech, IBM Watson, ReadSpeaker, and partially OpenAI / ElevenLabs — accepts SSML input. PLS (referenced via SSML’s
<lexicon>) is what AWS Polly uses for custom-pronunciation lexicons. The reason no v2 has happened: the W3C Voice Browser WG closed in the mid-2010s, and vendor extensions (<amazon:effect>,<google:tts>,<mstts:express-as>) absorbed the demand for new features without breaking the core grammar. SSML is one of the cleanest examples of a “frozen but alive” web standard. -
The caption-format zoo and its conversion industry. SRT (informal, ~2000, no owner) is ubiquitous because it’s plain text. WebVTT (W3C Candidate Recommendation) is the browser-native modern format. TTML2 (W3C Recommendation, November 2018) is the XML heavyweight used in broadcast workflows; IMSC 1.2 (W3C Recommendation, August 2020) is its profile for online subtitles and is what Netflix, Hulu, BBC, and most streaming platforms author against, with IMSC Text 1.3 in Candidate Recommendation Snapshot (2025) and TTML2 Dubbing/Audio-Description Profiles updated to CR in 2025. CEA-608/708 sit on the broadcast-television side. Conversion between these formats is a perennial pain because feature parity is incomplete (WebVTT has no nested styling like IMSC; IMSC’s region/region-style model has no SRT equivalent).
-
EPUB Accessibility 1.1 + Schema.org as the publisher’s API. EPUB Accessibility 1.1 became a W3C Recommendation on 17 October 2024. It defines the conformance criteria for EPUB 3.3 publications and — crucially — formalises the use of Schema.org accessibility metadata (
accessibilityFeature,accessibilityHazard,accessibilityAPI,accessibilityControl,accessibilitySummary) as machine-readable declarations on the publication’s package document. Apple Books, Google Play Books, Kobo, and most retailer storefronts read these to filter “books that work with VoiceOver” or “books with no flashing hazards.” It is the model for how accessibility metadata should propagate through a distribution chain. EPUB Accessibility 1.1.1 (Working Draft, March 2025) is a maintenance update. -
Platform a11y APIs as ARIA’s downstream consumers. Every browser’s accessibility-tree builder maps ARIA into a platform-specific vocabulary. Windows: Microsoft UIA (2005, Vista-era) with its control-pattern model (Invoke, Toggle, Value, Selection, ExpandCollapse, etc.) — UIA superseded MSAA / IAccessible / IAccessible2 but those still exist as bridges. macOS: NSAccessibility’s protocol + attribute strings. Linux: AT-SPI 2 over D-Bus. Android: AccessibilityServiceConfig + AccessibilityNodeInfo. iOS: UIAccessibility protocol + traits. The HTML-AAM and Core-AAM specs at W3C document these mappings explicitly; they are why writing
role="button"in HTML produces aControlType.Buttonin UIA, anAXButtonrole in NSAccessibility, and the equivalent on Android — without that mapping spec, ARIA would be useless.
Citations
- WAI-ARIA 1.2 (W3C Rec, 6 June 2023): https://www.w3.org/TR/wai-aria-1.2/
- WAI-ARIA 1.3 (W3C Working Draft, FPWD 23 Jan 2024): https://www.w3.org/TR/wai-aria-1.3/
- WAI-ARIA 1.3 editor’s draft: https://w3c.github.io/aria/
- WCAG 2.2 (W3C Rec, 5 Oct 2023): https://www.w3.org/TR/WCAG22/
- WCAG 3.0 Working Draft (March 2026 update): https://www.w3.org/WAI/news/2026-03-03/wcag3/
- WCAG 3.0 spec: https://www.w3.org/TR/wcag-3.0/
- Revised Section 508 (US Access Board): https://www.access-board.gov/ict/
- EN 301 549 v3.2.1 (ETSI, March 2021): https://www.etsi.org/deliver/etsi_en/301500_301599/301549/03.02.01_60/en_301549v030201p.pdf
- EPUB Accessibility 1.1 (W3C Rec, 17 Oct 2024): https://www.w3.org/TR/epub-a11y-11/
- SSML 1.1 (W3C Rec, 7 Sept 2010): https://www.w3.org/TR/speech-synthesis11/
- PLS 1.0 (W3C Rec, 14 Oct 2008): https://www.w3.org/TR/pronunciation-lexicon/
- axe-core rule descriptions: https://github.com/dequelabs/axe-core/blob/develop/doc/rule-descriptions.md
- WebVTT (W3C CR): https://www.w3.org/TR/webvtt1/
- TTML2 (W3C Rec, 8 Nov 2018): https://www.w3.org/TR/ttml2/
- IMSC 1.2 (W3C Rec, 4 Aug 2020): https://www.w3.org/TR/ttml-imsc1.2/
- TTML2 Dubbing & Audio Description Profiles (Updated CR, 2025): https://www.w3.org/news/2025/updated-candidate-recommendation-dubbing-and-audio-description-profiles-of-ttml2/
- Microsoft UI Automation spec: https://learn.microsoft.com/en-us/windows/win32/winauto/entry-uiauto-win32
- Apple NSAccessibility: https://developer.apple.com/documentation/appkit/nsaccessibility
- AccName 1.2 (W3C Rec): https://www.w3.org/TR/accname-1.2/
- AOM (WICG): https://wicg.github.io/aom/
- ARIA Authoring Practices Guide: https://www.w3.org/WAI/ARIA/apg/
- DAISY Consortium: https://daisy.org/
- Schema.org accessibility properties: https://schema.org/docs/accessibility-properties.html
- ACT Rules Community: https://act-rules.github.io/