diff --git a/.github/workflows/build-copy-and-publish-accname.yml b/.github/workflows/build-copy-and-publish-accname.yml new file mode 100644 index 000000000..fc2c7cb5d --- /dev/null +++ b/.github/workflows/build-copy-and-publish-accname.yml @@ -0,0 +1,64 @@ +name: Build, Copy, and Publish accname +on: + push: + branches: [main] + paths: ['accname/**', 'common/**'] + workflow_dispatch: + +jobs: + main: + name: Build Respec + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - uses: w3c/spec-prod@v2 + with: + SOURCE: accname/index.html + TOOLCHAIN: respec + W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN_ACCNAME }} + W3C_WG_DECISION_URL: https://lists.w3.org/Archives/Public/public-aria-admin/2018Sep/0011.html + GH_PAGES_BRANCH: gh-pages + VALIDATE_WEBIDL: false + VALIDATE_MARKUP: false + BUILD_FAIL_ON: nothing + W3C_BUILD_OVERRIDE: | + specStatus: WD + shortName: accname-1.2 + ARTIFACT_NAME: 'accname' + + - uses: actions/upload-artifact@v4 + with: + name: accname + path: accname.zip + + copy-to-accname-gh-pages: + name: Copy to accname repo + runs-on: ubuntu-20.04 + needs: main + steps: + - name: Checkout accname repo + uses: actions/checkout@v4 + with: + repository: w3c/accname + ref: gh-pages + path: accname + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: accname + path: accname + + - name: Commit changes + working-directory: accname + env: + token: ${{ secrets.ARIA_SPECS_EDITORS_DRAFTS }} + run: | + ls -R + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name "GitHub Actions" + git status + git add . + git commit -m "Update accname" + git push origin gh-pages diff --git a/.github/workflows/build-copy-and-publish-core-aam.yml b/.github/workflows/build-copy-and-publish-core-aam.yml new file mode 100644 index 000000000..0ee6c434f --- /dev/null +++ b/.github/workflows/build-copy-and-publish-core-aam.yml @@ -0,0 +1,64 @@ +name: Build, Copy, and Publish core-aam +on: + push: + branches: [main] + paths: ['core-aam/**', 'common/**'] + workflow_dispatch: + +jobs: + main: + name: Build Respec + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - uses: w3c/spec-prod@v2 + with: + SOURCE: core-aam/index.html + TOOLCHAIN: respec + W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN_CORE_AAM }} + W3C_WG_DECISION_URL: https://lists.w3.org/Archives/Public/public-aria-admin/2018Sep/0011.html + GH_PAGES_BRANCH: gh-pages + VALIDATE_WEBIDL: false + VALIDATE_MARKUP: false + BUILD_FAIL_ON: nothing + W3C_BUILD_OVERRIDE: | + specStatus: CRD + shortName: core-aam-1.2 + ARTIFACT_NAME: 'core-aam' + + - uses: actions/upload-artifact@v4 + with: + name: core-aam + path: core-aam.zip + + copy-to-core-aam-gh-pages: + name: Copy to core-aam repo + runs-on: ubuntu-20.04 + needs: main + steps: + - name: Checkout core-aam repo + uses: actions/checkout@v4 + with: + repository: w3c/core-aam + ref: gh-pages + path: core-aam + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: core-aam + path: core-aam + + - name: Commit changes + working-directory: core-aam + env: + token: ${{ secrets.ARIA_SPECS_EDITORS_DRAFTS }} + run: | + ls -R + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name "GitHub Actions" + git status + git add . + git commit -m "Update core-aam" + git push origin gh-pages diff --git a/.github/workflows/build-copy-and-publish-dpub-aam.yml b/.github/workflows/build-copy-and-publish-dpub-aam.yml new file mode 100644 index 000000000..3c9131099 --- /dev/null +++ b/.github/workflows/build-copy-and-publish-dpub-aam.yml @@ -0,0 +1,64 @@ +name: Build, Copy, and Publish dpub-aria +on: + push: + branches: [main] + paths: ['dpub-aria/**', 'common/**'] + workflow_dispatch: + +jobs: + main: + name: Build Respec + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - uses: w3c/spec-prod@v2 + with: + SOURCE: dpub-aria/index.html + TOOLCHAIN: respec + W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN_DPUB-AAM }} + W3C_WG_DECISION_URL: https://lists.w3.org/Archives/Public/public-aria-admin/2018Sep/0011.html + GH_PAGES_BRANCH: gh-pages + VALIDATE_WEBIDL: false + VALIDATE_MARKUP: false + BUILD_FAIL_ON: nothing + W3C_BUILD_OVERRIDE: | + specStatus: CRD + shortName: dpub-aria-1.1 + ARTIFACT_NAME: 'dpub-aria' + + - uses: actions/upload-artifact@v4 + with: + name: dpub-aria + path: dpub-aria.zip + + copy-to-dpub-aria-gh-pages: + name: Copy to dpub-aria repo + runs-on: ubuntu-20.04 + needs: main + steps: + - name: Checkout dpub-aria repo + uses: actions/checkout@v4 + with: + repository: w3c/dpub-aria + ref: gh-pages + path: dpub-aria + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: dpub-aria + path: dpub-aria + + - name: Commit changes + working-directory: dpub-aria + env: + token: ${{ secrets.ARIA_SPECS_EDITORS_DRAFTS }} + run: | + ls -R + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name "GitHub Actions" + git status + git add . + git commit -m "Update dpub-aria" + git push origin gh-pages diff --git a/.github/workflows/build-copy-and-publish-dpub-aria.yml b/.github/workflows/build-copy-and-publish-dpub-aria.yml new file mode 100644 index 000000000..95c463ebc --- /dev/null +++ b/.github/workflows/build-copy-and-publish-dpub-aria.yml @@ -0,0 +1,64 @@ +name: Build, Copy, and Publish dpub-aria +on: + push: + branches: [main] + paths: ['dpub-aria/**', 'common/**'] + workflow_dispatch: + +jobs: + main: + name: Build Respec + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - uses: w3c/spec-prod@v2 + with: + SOURCE: dpub-aria/index.html + TOOLCHAIN: respec + W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN_DPUB-ARIA }} + W3C_WG_DECISION_URL: https://lists.w3.org/Archives/Public/public-aria-admin/2018Sep/0011.html + GH_PAGES_BRANCH: gh-pages + VALIDATE_WEBIDL: false + VALIDATE_MARKUP: false + BUILD_FAIL_ON: nothing + W3C_BUILD_OVERRIDE: | + specStatus: CRD + shortName: dpub-aria-1.1 + ARTIFACT_NAME: 'dpub-aria' + + - uses: actions/upload-artifact@v4 + with: + name: dpub-aria + path: dpub-aria.zip + + copy-to-dpub-aria-gh-pages: + name: Copy to dpub-aria repo + runs-on: ubuntu-20.04 + needs: main + steps: + - name: Checkout dpub-aria repo + uses: actions/checkout@v4 + with: + repository: w3c/dpub-aria + ref: gh-pages + path: dpub-aria + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: dpub-aria + path: dpub-aria + + - name: Commit changes + working-directory: dpub-aria + env: + token: ${{ secrets.ARIA_SPECS_EDITORS_DRAFTS }} + run: | + ls -R + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name "GitHub Actions" + git status + git add . + git commit -m "Update dpub-aria" + git push origin gh-pages diff --git a/.github/workflows/build-copy-and-publish-graphics-aam.yml b/.github/workflows/build-copy-and-publish-graphics-aam.yml new file mode 100644 index 000000000..c09737b0a --- /dev/null +++ b/.github/workflows/build-copy-and-publish-graphics-aam.yml @@ -0,0 +1,64 @@ +name: Build, Copy, and Publish graphics-aam +on: + push: + branches: [main] + paths: ['graphics-aam/**', 'common/**'] + workflow_dispatch: + +jobs: + main: + name: Build Respec + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - uses: w3c/spec-prod@v2 + with: + SOURCE: graphics-aam/index.html + TOOLCHAIN: respec + W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN_GRAPHICS-AAM }} + W3C_WG_DECISION_URL: https://lists.w3.org/Archives/Public/public-aria-admin/2018Sep/0011.html + GH_PAGES_BRANCH: gh-pages + VALIDATE_WEBIDL: false + VALIDATE_MARKUP: false + BUILD_FAIL_ON: nothing + W3C_BUILD_OVERRIDE: | + specStatus: CRD + shortName: graphics-aam-1.1 + ARTIFACT_NAME: 'graphics-aam' + + - uses: actions/upload-artifact@v4 + with: + name: graphics-aam + path: graphics-aam.zip + + copy-to-graphics-aam-gh-pages: + name: Copy to graphics-aam repo + runs-on: ubuntu-20.04 + needs: main + steps: + - name: Checkout graphics-aam repo + uses: actions/checkout@v4 + with: + repository: w3c/graphics-aam + ref: gh-pages + path: graphics-aam + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: graphics-aam + path: graphics-aam + + - name: Commit changes + working-directory: graphics-aam + env: + token: ${{ secrets.ARIA_SPECS_EDITORS_DRAFTS }} + run: | + ls -R + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name "GitHub Actions" + git status + git add . + git commit -m "Update graphics-aam" + git push origin gh-pages diff --git a/.github/workflows/build-copy-and-publish-graphics-aria.yml b/.github/workflows/build-copy-and-publish-graphics-aria.yml new file mode 100644 index 000000000..438741682 --- /dev/null +++ b/.github/workflows/build-copy-and-publish-graphics-aria.yml @@ -0,0 +1,64 @@ +name: Build, Copy, and Publish graphics-aria +on: + push: + branches: [main] + paths: ['graphics-aria/**', 'common/**'] + workflow_dispatch: + +jobs: + main: + name: Build Respec + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - uses: w3c/spec-prod@v2 + with: + SOURCE: graphics-aria/index.html + TOOLCHAIN: respec + W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN_GRAPHICS-ARIA }} + W3C_WG_DECISION_URL: https://lists.w3.org/Archives/Public/public-aria-admin/2018Sep/0011.html + GH_PAGES_BRANCH: gh-pages + VALIDATE_WEBIDL: false + VALIDATE_MARKUP: false + BUILD_FAIL_ON: nothing + W3C_BUILD_OVERRIDE: | + specStatus: CRD + shortName: graphics-aria-1.1 + ARTIFACT_NAME: 'graphics-aria' + + - uses: actions/upload-artifact@v4 + with: + name: graphics-aria + path: graphics-aria.zip + + copy-to-graphics-aria-gh-pages: + name: Copy to graphics-aria repo + runs-on: ubuntu-20.04 + needs: main + steps: + - name: Checkout graphics-aria repo + uses: actions/checkout@v4 + with: + repository: w3c/graphics-aria + ref: gh-pages + path: graphics-aria + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: graphics-aria + path: graphics-aria + + - name: Commit changes + working-directory: graphics-aria + env: + token: ${{ secrets.ARIA_SPECS_EDITORS_DRAFTS }} + run: | + ls -R + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name "GitHub Actions" + git status + git add . + git commit -m "Update graphics-aria" + git push origin gh-pages diff --git a/.github/workflows/build-copy-and-publish-html-aam.yml b/.github/workflows/build-copy-and-publish-html-aam.yml new file mode 100644 index 000000000..056709fc9 --- /dev/null +++ b/.github/workflows/build-copy-and-publish-html-aam.yml @@ -0,0 +1,64 @@ +name: Build, Copy, and Publish html-aam +on: + push: + branches: [main] + paths: ['html-aam/**', 'common/**'] + workflow_dispatch: + +jobs: + main: + name: Build Respec + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - uses: w3c/spec-prod@v2 + with: + SOURCE: html-aam/index.html + TOOLCHAIN: respec + W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN_HTML-AAM }} + W3C_WG_DECISION_URL: https://lists.w3.org/Archives/Public/public-aria-admin/2018Sep/0011.html + GH_PAGES_BRANCH: gh-pages + VALIDATE_WEBIDL: false + VALIDATE_MARKUP: false + BUILD_FAIL_ON: nothing + W3C_BUILD_OVERRIDE: | + specStatus: WD + shortName: html-aam-1.2 + ARTIFACT_NAME: 'html-aam' + + - uses: actions/upload-artifact@v4 + with: + name: html-aam + path: html-aam.zip + + copy-to-html-aam-gh-pages: + name: Copy to html-aam repo + runs-on: ubuntu-20.04 + needs: main + steps: + - name: Checkout html-aam repo + uses: actions/checkout@v4 + with: + repository: w3c/html-aam + ref: gh-pages + path: html-aam + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: html-aam + path: html-aam + + - name: Commit changes + working-directory: html-aam + env: + token: ${{ secrets.ARIA_SPECS_EDITORS_DRAFTS }} + run: | + ls -R + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name "GitHub Actions" + git status + git add . + git commit -m "Update html-aam" + git push origin gh-pages diff --git a/.github/workflows/build-copy-and-publish-mathml-aam.yml b/.github/workflows/build-copy-and-publish-mathml-aam.yml new file mode 100644 index 000000000..e5a0e6dab --- /dev/null +++ b/.github/workflows/build-copy-and-publish-mathml-aam.yml @@ -0,0 +1,64 @@ +name: Build, Copy, and Publish mathml-aam +on: + push: + branches: [main] + paths: ['mathml-aam/**', 'common/**'] + workflow_dispatch: + +jobs: + main: + name: Build Respec + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - uses: w3c/spec-prod@v2 + with: + SOURCE: mathml-aam/index.html + TOOLCHAIN: respec + W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN_MATHML-AAM }} + W3C_WG_DECISION_URL: https://lists.w3.org/Archives/Public/public-aria-admin/2018Sep/0011.html + GH_PAGES_BRANCH: gh-pages + VALIDATE_WEBIDL: false + VALIDATE_MARKUP: false + BUILD_FAIL_ON: nothing + W3C_BUILD_OVERRIDE: | + specStatus: CRD + shortName: mathml-aam-1.1 + ARTIFACT_NAME: 'mathml-aam' + + - uses: actions/upload-artifact@v4 + with: + name: mathml-aam + path: mathml-aam.zip + + copy-to-mathml-aam-gh-pages: + name: Copy to mathml-aam repo + runs-on: ubuntu-20.04 + needs: main + steps: + - name: Checkout mathml-aam repo + uses: actions/checkout@v4 + with: + repository: w3c/mathml-aam + ref: gh-pages + path: mathml-aam + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: mathml-aam + path: mathml-aam + + - name: Commit changes + working-directory: mathml-aam + env: + token: ${{ secrets.ARIA_SPECS_EDITORS_DRAFTS }} + run: | + ls -R + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name "GitHub Actions" + git status + git add . + git commit -m "Update mathml-aam" + git push origin gh-pages diff --git a/.github/workflows/dependabot.yaml b/.github/workflows/dependabot.yaml new file mode 100644 index 000000000..17d094fce --- /dev/null +++ b/.github/workflows/dependabot.yaml @@ -0,0 +1,12 @@ +# Set update schedule for GitHub Actions + +version: 2 +updates: + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + open-pull-requests-limit: 10 + commit-message: + prefix: "chore: dependabot" diff --git a/.github/workflows/prettier.yaml b/.github/workflows/prettier.yaml new file mode 100644 index 000000000..284800354 --- /dev/null +++ b/.github/workflows/prettier.yaml @@ -0,0 +1,27 @@ +name: Prettier +# minimally modified from https://github.com/creyD/prettier_action#example-2-using-the-only_changed-or-same_commit-option-on-pr + +on: + pull_request: + branches: + - main + - monorepo* + +jobs: + prettier: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + # Make sure the actual branch is checked out when running on pull requests + ref: ${{ github.head_ref }} + # This is important to fetch the changes to the previous commit + fetch-depth: 0 + + - name: Prettify code + uses: creyD/prettier_action@v4.3 + with: + prettier_options: --write **/index.html --print-width 200 + commit_message: "chore: prettier" diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..e90722f8a --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +/index.html diff --git a/accname/.gitattributes b/accname/.gitattributes new file mode 100644 index 000000000..e5237fb0f --- /dev/null +++ b/accname/.gitattributes @@ -0,0 +1,12 @@ +# Ensure all text files do not accidentally become a CRLF file. +# Agreed upon during 5 August 2015 PF Editors concall. +# To override or prevent this behavior see the following sections. +* text eol=lf + +# Files that will always have CRLF line endings. Example: +# my-special-spec.html eol=crlf + +# Ensure non-text files don't get accidentally swept up by above. +*.png binary +*.jpg binary +*.zargo binary diff --git a/accname/.gitignore b/accname/.gitignore new file mode 100644 index 000000000..ead8624e4 --- /dev/null +++ b/accname/.gitignore @@ -0,0 +1,219 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +<<<<<<< HEAD +*.py[co] +======= +*.py[cod] +>>>>>>> a51b9db2d4ebd2968f49781325ba3e4741f0127f + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg diff --git a/accname/README.md b/accname/README.md new file mode 100644 index 000000000..a5a3a606a --- /dev/null +++ b/accname/README.md @@ -0,0 +1,5 @@ + +# Specification 'accname' + +This is the repository for accname. You're welcome to contribute! Let's make the Web rock our socks +off! diff --git a/accname/index.html b/accname/index.html new file mode 100644 index 000000000..815babde6 --- /dev/null +++ b/accname/index.html @@ -0,0 +1,799 @@ + + + + Accessible Name and Description Computation 1.2 + + + + + + + + + +
+

+ This document describes how user agents determine the names and + descriptions of accessible objects from web content languages. This information is in turn exposed through + accessibility APIs so that assistive technologies can identify these objects and present + their names or descriptions to users. Documenting the algorithm through which names and descriptions are to be determined promotes interoperable exposure of these properties among different + accessibility APIs and helps to ensure that this information appears in a manner consistent with author intent. +

+

+ The accessible name and description computation specification defines support that applies across multiple content technologies. This includes accessible name and description provided by + general-purpose + WAI-ARIA + [[WAI-ARIA]] roles, states, and [=ARIA/properties=] as well as features specific to individual content languages. +

+

+ This document updates and will eventually supersede the accessible name and description guidance in the + Accessible Name and Description Computation 1.1 [[ACCNAME-1.1]] W3C Recommendation. It is part of the + WAI-ARIA suite described in the + WAI-ARIA Overview. +

+
+
+
+

Introduction

+

+ User agents acquire information from the DOM [[DOM]] and create a parallel structure called the + accessibility tree, made up of accessible objects. An accessible object provides information about its role, + states, and [=ARIA/properties=]. An example is an accessible object whose role is menuitem, is currently in an enabled state, with a + haspopup property, indicating that it leads to a sub-menu. +

+

+ The two properties of accessible objects described in this document are its accessible name and accessible description. The name is a short label + that provides information about the purpose of the object. An example of an accessible name for a menu item is New, signifying that the menu item provides for the creation of new + documents, windows, and so on. +

+

+ The description is a short explanation that further clarifies the nature of the accessible object. It is not always necessary to provide a description if the name is sufficient, but it can + help a user better understand the use of the object. +

+

+ Accessibility APIs currently support flat, unstructured strings for accessible names and descriptions. The result + of the name/description computation is thus a flat string. +

+

+ The terms "accessible name" and "accessible description" are used to emphasize that they are properties of accessible objects as exposed by + Accessibility APIs. However, they are frequently referred to hereafter as simply "name" and "description". +

+
+
+

Important Terms

+
+

While some terms are defined in place, the following definitions are used throughout this document.

+
+
Assistive Technologies
+
+

Hardware and/or software that:

+
    +
  • relies on services provided by a user agent to retrieve and render Web content
  • +
  • works with a user agent or web content itself through the use of APIs, and
  • +
  • provides services beyond those offered by the user agent to facilitate user interaction with web content by people with disabilities
  • +
+

This definition may differ from that used in other documents.

+

Examples of assistive technologies that are important in the context of this document include the following:

+
    +
  • screen magnifiers, which are used to enlarge and improve the visual readability of rendered text and images;
  • +
  • screen readers, which are most-often used to convey information through synthesized speech or a refreshable Braille display;
  • +
  • text-to-speech software, which is used to convert text into synthetic speech;
  • +
  • speech recognition software, which is used to allow spoken control and dictation;
  • +
  • alternate input technologies (including head pointers, on-screen keyboards, single switches, and sip/puff devices), which are used to simulate the keyboard;
  • +
  • alternate pointing devices, which are used to simulate mouse pointing and clicking.
  • +
+
+
Accessible Description
+
+

+ An accessible description provides additional information, related to an interface element, that complements the accessible name. The accessible description might or might not be + visually perceivable. +

+
+
Accessible Name
+
+

+ The accessible name is the name of a user interface element. Each platform accessibility API provides the accessible name + property. The value of the accessible name may be derived from a visible (e.g., the visible text on a button) or invisible (e.g., the text alternative that describes an icon) property of + the user interface element. See related accessible description. +

+

+ A simple use for the accessible name property may be illustrated by an "OK" button. The text "OK" is the accessible name. When the button receives focus, assistive + technologies may concatenate the platform's role description with the accessible name. For example, a screen reader may speak "push-button OK" or "OK button". The + order of concatenation and specifics of the role description (e.g., "button", "push-button", "clickable button") are determined by platform + accessibility APIs or assistive technologies. +

+
+
Tooltip attribute
+
+

Any host language attribute that would result in a user agent generating a tooltip such as in response to a mouse hover in desktop user agents.

+
+
+
+
+
+
+

RFC-2119 Keywords

+

+ RFC-2119 keywords are formatted in uppercase and in bold type font. When the keywords shown above are used, but do not share this format, they do not convey formal information in the RFC + 2119 sense, and are merely explanatory, i.e., informative. As much as possible, such usages are avoided in this specification. +

+
+
+

Normative and Informative Sections

+

The indication whether a section is normative or non-normative (informative) applies to the entire section including sub-sections.

+

+ Informative sections provide information useful to understanding the specification. Such sections may contain examples of recommended practice, but it is not required to follow such + recommendations in order to conform to this specification. +

+
+
+
+

Name and Description

+

+ The starting point of the name and description computation is a DOM [=element=]. The output is a flat, unstructured string that can be as simple as a + single word, or a string of space-separated tokens. Examples include Save and Reload from disk. +

+

+ An important factor is the [=element|element's=] role, that determines which content contributes to the name string. Roles have a nameFrom + RDF property, with three possible values: +

+
+
author
+
+ name is generated from values provided by the author in explicit markup features such as the aria-label and aria-labelledby [=attribute=], or a host language + labeling mechanism, such as the alt or title [=attribute=] in HTML, or the desc [=element=] in + SVG. +
+
contents
+
+ name is generated from the Text [=nodes=] associated with the [=element=]. Although this may be allowed in addition to "author" in some roles, "content" is used only + if higher priority "author" features are not provided. Priority is defined by the text equivalent computation algorithm. +
+
prohibited
+
+ the element has no name. Authors MUST NOT use the aria-label or + aria-labelledby attributes to name the element. +
+
+

+ The Accessible Rich Internet Applications (WAI-ARIA) 1.2 [[!WAI-ARIA]] specification provides lists of + roles that support name from author, roles that support name from content and + roles that cannot be named. +

+
+

Name Computation

+

+ User agents MUST compute an accessible name using the rules outlined below in the section titled + Text Equivalent Computation. +

+
+ +
+

Description Computation

+

+ The following table provides the order of precedence for markup that can be applied to compute an accessible description. User agents MUST use + the first applicable entry from the table where the listed conditions are met, as described in the last column. The user agent MUST NOT use any markup other that the first relevant markup + found, even if that markup results in an empty description: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PrecedenceAttributeApplicable conditionsHow used to compute description
1 + aria-describedby attribute + Use on any elementName computation on all nodes referenced by aria-describedby on the element, concatenated, and separated by a space character
2 + aria-description attribute + Use on any elementAs a flat string
3host language features which participate in the description calculation + Unique host language features MAY participate in the description computation for an element, only if they were not already used for the accessible name of the applicable element. See + HTML AAM: Accessible Description Computation + for the HTML elements which meet this condition. + Either a text equivalent computation of the host language element, or the string value of the host language attribute.
4host language tooltip attribute or equivalent feature (e.g., HTML title attribute) +
    +
  • Any element
  • +
  • Only use if not already used for the accessible name of this node
  • +
+
As a flat string
+
+
+

Text Equivalent Computation

+

+ The text equivalent computation is used by both the accessible name and accessible description. There are different rules provided for several + different types of [=element|elements=], [=nodes=], and combinations of markup. Text alternatives are built up, when appropriate, from all the relevant content contained within an + [=element=]. This is accomplished via steps 2B and 2F, which are recursive, using the full set of rules to retrieve text from its own children or nodes it references. +

+

+ The purpose of the computation is to create a perceivable label or description for alternative presentations, in the form of a flat string of space separated textual + tokens. +

+
+

Terminology

+
+
Root node
+
The DOM [=nodes|node=] or [=element=] for which the text alternative is sought.
+
Current node
+
+ The DOM [=nodes|node=] currently traversed to compute the root node's text equivalent. Initially, the current node is + the root node, but at later stages is either some descendant of the root node, or another referenced node. +
+
Rendered child nodes
+
The [=nodes=] that are rendered as child nodes of a given node when taking [=shadow root|shadow roots=] and [=slot|slots=] into consideration.
+
Flat string
+
+ A string of characters where all carriage returns, newlines, tabs, and form-feeds are replaced with a single space, and multiple spaces are reduced to a single space. The string contains + only character data; it does not contain any markup. +
+
Total accumulated text
+
The text equivalent computed up to, but not including the current node.
+
Accumulated text
+
Text accumulated at a step or sequence of steps described below. It is temporary storage for those steps.
+
Result
+
The text equivalent computed at one of the steps described below.
+
Append the result, without a space, to X
+
+
    +
  • If X is empty, copy the result to X.
  • +
  • If X is non-empty, copy the result to the end of X.
  • +
+
+
Append the result, with a space, to X
+
+
    +
  • If X is empty, copy the result to X.
  • +
  • If X is non-empty, add a space to the end of X and then copy the result to X after the space.
  • +
+
+
Prepend result, without a space, to X
+
+
    +
  • If X is empty, copy the result to X.
  • +
  • If X is non-empty, copy the result to the start of X.
  • +
+
+
Prepend the result, with a space, to X
+
+
    +
  • If X is empty, copy the result to X.
  • +
  • If X is non-empty, copy the result to the start of X, and add a space after the copy.
  • +
+
+
+
+
+

Computation steps

+

The text alternative for a given element is computed as follows:

+
    +
  1. + Initialization: Set the root node to the given element, the current node to the + root node, and the total accumulated text to the empty string (""). If the root node's role prohibits naming, return the empty string (""). +
  2. +
  3. + Computation: Compute the text alternative for the current node: +
      +
    1. + Hidden Not Referenced: If the current node is + [=element/hidden=] and is: +
        +
      1. Not part of an aria-labelledby or aria-describedby traversal, where the node directly referenced by that relation was hidden.
      2. +
      3. + Nor part of a native host language text alternative element (e.g. label in HTML) or + attribute traversal, where the root of that traversal was hidden. +
      4. +
      + Return the empty string. +
      +

      It's important to clarify the broad definition of hidden for the purposes of accessible name calculation:

      +
        +
      1. + Nodes with CSS properties display:none, visibility:hidden, visibility:collapse or content-visibility:hidden: They are + considered hidden, as they match the guidelines "not perceivable" and "explicitly hidden". +
      2. +
      3. + Nodes with CSS properties opacity:0 or filter:opacity(0%), or similar SVG mechanisms: They are not considered hidden. Text hidden with these methods + can still be selected or copied, and user agents still expose it in their accessibility trees. +
      4. +
      5. Nodes with the aria-hidden="true" property: it is considered hidden, matching the "explicitly hidden" guideline.
      6. +
      7. Nodes hidden off screen or behind another object: they are not considered hidden. They are exposed in the accessibility tree and they can even name on-screen objects.
      8. +
      +
      +
      +

      + By default, assistive technologies do not relay hidden information, but an author can explicitly override that and include hidden text as part of the + accessible name or accessible description by using aria-labelledby or aria-describedby. +

      +
      + + +
    2. +
    3. + LabelledBy: Otherwise, if the current node has an + aria-labelledby [=attribute=] that contains at least one valid IDREF, and the current node is not already part of an ongoing aria-labelledby or + aria-describedby traversal, process its IDREFs in the order they occur: +
        +
      1. + Set the accumulated text to the empty string. +
      2. +
      3. + For each IDREF: +
          +
        1. + Set the current node to the node referenced by the IDREF. +
        2. +
        3. + LabelledBy Recursion: Compute the text alternative of the + current node beginning with the overall Computation step. Set the result to that text alternative. +
        4. +
        5. + Append a space character and the result to the accumulated text. +
        6. +
        +
      4. +
      5. + Return the accumulated text if it is not the empty string (""). +
      6. +
      +
      +

      + The result of LabelledBy Recursion in combination with Hidden Not Referenced means that + user agents MUST include all nodes in the subtree as part of the accessible name or accessible description, + when the node referenced by aria-labelledby or aria-describedby is hidden. +

      + +
      +
    4. +
    5. + Embedded Control: Otherwise, if the current node is a control embedded within the label + (e.g. any element directly referenced by aria-labelledby) for another widget, where the user can adjust the embedded control's value, then return + the embedded control as part of the text alternative in the following manner: +
        +
      1. Textbox: If the embedded control has role textbox, return its value.
      2. +
      3. + Combobox/Listbox: If the embedded control has role combobox or listbox, + return the text alternative of the chosen option. +
      4. +
      5. + Range: If the embedded control has role range (e.g., a spinbutton or + slider): +
          +
        1. If the aria-valuetext property is present, return its value,
        2. +
        3. Otherwise, if the aria-valuenow property is present, return its value,
        4. +
        5. Otherwise, use the value as specified by a host language attribute.
        6. +
        +
      6. +
      + +
    6. +
    7. + AriaLabel: Otherwise, if the current node has an aria-label [=attribute=] + whose value is not undefined, not the empty string, nor, when trimmed of [=ascii whitespace|whitespace=], is not the empty string: +
        +
      1. + If traversal of the current node is due to recursion and the current node is an embedded control, ignore aria-label and + skip to rule Embedded Control. +
      2. +
      3. Otherwise, return the value of aria-label.
      4. +
      + +
    8. +
    9. + Host Language Label: Otherwise, if the current node's native markup provides an + [=attribute=] (e.g. alt) or [=element=] (e.g. HTML label or SVG title) that defines a text alternative, return that alternative in the form of + a flat string as defined by the host language, unless the element is marked as presentational (role="presentation" or role="none"). +
      + See HTML-AAM, + SVG-AAM, or other host language documentation for more information on markup that defines a text alternative. +
      +
      +

      + For example, in HTML, the img element's alt attribute defines a text alternative string, and the + label element provides text for the referenced form element. In SVG2, the desc and title elements provide a + description of their parent element. +

      +
      +
    10. +
    11. + Name From Content: Otherwise, if the current node's role allows + name from content, or if the current node is referenced by aria-labelledby, aria-describedby, or + is a native host language text alternative [=element=] (e.g. label in HTML), or is a descendant of a native host language text alternative [=element=]: +
        +
      1. + Name From Content Reset: Set the accumulated text to the empty string. +
      2. +
      3. + Name From Generated Content: Check for + CSS generated textual content associated with the current node and include it in the accumulated text. The + CSS ::before and ::after pseudo + elements [[!CSS2]] can provide textual content for [=element|elements=] that have a content model. +
          +
        1. + For ::before pseudo elements, User agents MUST prepend CSS textual content, without a space, + to the textual content of the current node. +
        2. +
        3. + For ::after pseudo elements, User agents MUST append CSS textual content, without a space, to + the textual content of the current node. +
        4. +
        +
      4. + +
      5. + Determine Child Nodes: Determine the rendered child nodes of the current node: +
          +
        1. + If the current node has an attached [=shadow root=], set the rendered child nodes to be the child nodes of the [=shadow root=]. +
        2. +
        3. + Otherwise, if the current node is a [=slot=] with [=slot/assigned nodes=], set the rendered child nodes to be the [=slot/assigned nodes=] of the + current node. +
        4. +
        5. Otherwise, set the rendered child nodes to be the child nodes of the current node.
        6. +
        +
      6. +
      7. + Name From Each Child: For each rendered child node of the + current node: +
          +
        1. + Set the current node to the rendered child node. +
        2. +
        3. + Compute the text alternative of the current node beginning with the overall + Computation step. Set the result to that text alternative. +
        4. +
        5. + Append the result to the accumulated text. +
        6. +
        +
      8. +
      9. + Return the accumulated text if it is not the empty string (""). +
      10. +
      +

      + Important: Each [=nodes|node=] in the subtree is consulted only once. If text has been collected from a descendant, but is referenced by another IDREF in some + descendant node, then that second, or subsequent, reference is not followed. This is done to avoid infinite loops. +

      +
      +

      + This step can apply to the child nodes themselves, which means the computation is recursive and results in text collected from all the elements in the current node's + subtree, no matter how deep it is. However, any given descendant [=nodes|node's=] text alternative can result from higher precedent markup described in steps B through D above, + where "Namefrom: author" attributes provide the text alternative for the entire subtree. +

      +
      +
      +

      + 18 January 2024: The ARIA Working Group is considering the feasibility of joining text strings with and without spaces, depending on the CSS display value of the + current node, and its adjacent nodes and pseudo-elements. The ongoing discussion is in AccName #225. +

      +
      +
    12. +
    13. + Text Node: Otherwise, if the current node is a Text [=Node=], return its textual + contents. +
    14. +
    15. + Recursive Name From Content: Otherwise, if the current node is a descendant of an + element whose Accessible Name or Accessible Description is being computed, and contains descendants, proceed to + Name From Content Reset. +
    16. +
    17. + Tooltip: Otherwise, if the current node has a Tooltip attribute, + return its value. +
      +

      Tooltip attributes are used only if nothing else, including subtree content, has provided results.

      +
      +
    18. +
    19. Append a space character and the result of each step above to the total accumulated text.
    20. +
    +
  4. +
  5. + After all steps are completed, the total accumulated text is used as the accessible name or accessible description of the + [=element=] that initiated the computation. +
  6. +
+
+
+
+
+

Accessible Name and Description Mapping

+

+ Information concerning name and description accessibility API mappings, including relationships, such as labelled-by/label-for and described-by/description-for, is documented in the + Core Accessibility API Mappings specification [[!CORE-AAM-1.2]]. See the mapping table entries for + aria-label, aria-labelledby, and aria-describedby. +

+
+
+

Appendices

+
+

Change Log

+
+

Substantive changes since the last public working draft

+ +
+
+

Substantive changes since the Accessible Name and Description Computation 1.1 Recommendation

+
    + +
  • + 27-June-2019: Add statement allowing for the possibility of naming being prohibited on the root node. Note: This change in and of itself has no implementation impact, but it allows other + specifications to optionally prohibit naming for a top-level element. Furthermore, even if this prohibition is made within a specification, that prohibition will not have any impact on + calculating name from contents. +
  • +
+
+
+
+

Acknowledgments

+

The following people contributed to the development of this document.

+
+
+
+
+ + diff --git a/core-aam/.gitattributes b/core-aam/.gitattributes new file mode 100644 index 000000000..e5237fb0f --- /dev/null +++ b/core-aam/.gitattributes @@ -0,0 +1,12 @@ +# Ensure all text files do not accidentally become a CRLF file. +# Agreed upon during 5 August 2015 PF Editors concall. +# To override or prevent this behavior see the following sections. +* text eol=lf + +# Files that will always have CRLF line endings. Example: +# my-special-spec.html eol=crlf + +# Ensure non-text files don't get accidentally swept up by above. +*.png binary +*.jpg binary +*.zargo binary diff --git a/core-aam/.gitignore b/core-aam/.gitignore new file mode 100644 index 000000000..f91ff2b91 --- /dev/null +++ b/core-aam/.gitignore @@ -0,0 +1,216 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml +*.publishproj + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +*.py[cod] + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg diff --git a/core-aam/.pr-preview.json b/core-aam/.pr-preview.json new file mode 100644 index 000000000..a239968f5 --- /dev/null +++ b/core-aam/.pr-preview.json @@ -0,0 +1,4 @@ +{ + "src_file": "index.html", + "type": "respec" +} diff --git a/core-aam/README.md b/core-aam/README.md new file mode 100644 index 000000000..9ef9fa40d --- /dev/null +++ b/core-aam/README.md @@ -0,0 +1,4 @@ + +# Specification 'core-aam' + +This is the repository for Core Accessibility API Mappings (core-aam), which is part of the [ARIA suite](https://www.w3.org/WAI/ARIA/deliverables). General information about editing specifications is in the [main ARIA repository readme](https://github.com/w3c/aria/). diff --git a/core-aam/css/core-aam.css b/core-aam/css/core-aam.css new file mode 100644 index 000000000..f71ede309 --- /dev/null +++ b/core-aam/css/core-aam.css @@ -0,0 +1,178 @@ +ol{ list-style:decimal; } +ol ol{ list-style:upper-alpha; } +ol ol ol{ list-style:lower-roman; } +ol ol ol ol{ list-style:lower-alpha; } + +table{ + border:solid 2px #999; + border-width:1px 0 0 1px; + margin:0.1em 0 1em; + padding:0; + border-spacing:0; + border-collapse:collapse; +} +th, td{ + border:solid 2px #999; + border-width:0 1px 1px 0; + padding:0.15em 0.3em 0.1em; + /*min-width:20em;*/ + vertical-align:top; + text-align:left; +} +th+th, td+td{ + width:auto; +} +th{ + background-color:#eee; +} +caption{ + text-align:left; + color:#555; + font-style:normal; + margin:1em 0 0.1em; + padding:0 0 0 0.3em; +} +html code, html pre, html kbd{ /* more specific selector than the default W3C style sheet */ + /* Most browsers default 'monospace' to Courier, which has an ex-height of about 60% normal size. */ + /* Monaco has a normal ex-height so font sizes appear more consistent with surrounding non-monospaced text. */ + font-family: "Monaco", "Courier New", "Courier", monospace; + font-family: "Monaco", "Courier New", "Courier"; /* declare as separate rule to account for browser font-size inconsistencies, monospace fallback from previous rule should still work in the [almost non-existant] case that a user system does not have Courier */ + font-size:0.9em; +} +html pre { /* more specific selector than the default W3C style sheet */ + border: solid 1px #999; + background-color: #fcfcfc; + margin:1em 0; + padding:0.5em 0.8em; + font-size:0.75em; /* text in blocks code blocks looked too big now that font is back to normal size */ +} +pre .tag, code .tag, code.tag{ + color:#00c; /* blue */ +} +pre .str, code .str, code.str{ + color:#090; /* green */ +} +pre .comment, code .comment, code.comment, .comment .str, .comment .tag{ + color:#777; /* gray */ +} +/* +.role-reference, .role-reference:link, .role-reference:visited { + background-color: #eee; +} +.state-reference, .state-reference:link, .state-reference:visited { + background-color: #ffc; +} +.property-reference, .property-reference:link, .property-reference:visited { + background-color: #ccf; +} +.widget-reference, .widget-reference:link, .widget-reference:visited { + background-color: #9f6; +} +*/ +.role-reference, .state-reference, .property-reference, .widget-reference, .design-pattern-reference {} +.termref, a.termref:link { + color:#006400; + text-decoration:none; + font-style:italic; +} +a.termref:visited { + color:inherit; +} +a.termref:hover, a.termref:focus { + background-color: #fafad2; + color: #006400; +} +.empty { + display: none; +} +.note { + color:#444; + border:solid 1px #ccc; + margin:1em 0; + padding:1em 2em; +} +.ednote { + border:solid 3px #cca; + background-color:#ffd; + padding:0 0.8em; +} +.role-screenshot { + float: right; + margin-left: 1em; + margin-bottom: 1ex; +} +.role-screenshot p { + text-align: center; + font-size: smaller; +} +.image { + text-align: center; +} +.img { + margin-left: auto; + margin-right: auto; +} +.img p { + text-align: center; + font-weight: bold; + font-size: smaller; +} +.img-caption { + font-weight: bold; +} +/* +dl.runin dt { + display: run-in; +} +dl.runin dt:after { + content: ": "; +} +*/ +dl.compact dt { + font-weight:normal; +} +/* +dl.compact dd { + margin-left: 5em; +} +*/ +.rfc2119 { + font-weight: bold; + text-transform: uppercase; +} +.tocnum {} +.section {} +.todo { + background-color:#f99; +} +.issue { + background-color:#0c0; + text-transform:uppercase; +} + +.script-function, .script-property, .api-role, .api-method, .api-property, .api-state, .api-relation, .api-interface, .api-event, .api-object, .dom-property, .dom-method, .dom-event, .css-selector, .css-property { + font-family: monospace; +} +.script-function:after, .api-method:after, .dom-method:after { + font-family: monospace; + content: "()"; +} +.property-value, .api-property-value, .dom-property-value, .script-property-value, .css-property-value { + font-weight: bold; +} +.xsd-type {} + +/* Permalinks */ +.permalink { + float: right; + margin-top: -2.5em; + /*color:#333 !important;*/ +} +.permalink a, .permalink a:link, .permalink a:visited, .permalink a:hover, .permalink a:focus, .permalink a:active +{ + background:transparent !important; + text-decoration:none; +} +.permalink abbr { + border:0; +} diff --git a/core-aam/index.html b/core-aam/index.html new file mode 100644 index 000000000..87442672b --- /dev/null +++ b/core-aam/index.html @@ -0,0 +1,11130 @@ + + + + Core Accessibility API Mappings 1.2 + + + + + + + + + + + + + +
+

+ This document describes how [=user agents=] should expose semantics of web content languages to accessibility APIs. This helps users with disabilities to obtain and interact with information using assistive technologies. Documenting these mappings promotes interoperable exposure of + roles, states, properties, and events implemented by accessibility APIs and helps to ensure that this information appears in a manner consistent with author intent. +

+

+ This Core Accessibility API Mappings specification defines support that applies across multiple content technologies, including general keyboard navigation support and mapping of + general-purpose roles, states, and properties provided in Web content via + WAI-ARIA + [[WAI-ARIA-1.2]]. Other Accessibility API Mappings specifications depend on and extend this Core specification for specific technologies, including native technology features and WAI-ARIA + extensions. This document updates and will eventually supersede the guidance in the Core Accessibility API Mappings 1.1 [[CORE-AAM-1.1]] W3C + Recommendation. It is part of the WAI-ARIA suite described in the + WAI-ARIA Overview. +

+
+
+

+ The Accessible Rich Internet Applications Working Group seeks feedback on any aspect of the specification. When submitting feedback, please consider issues in the context of the companion + documents. To comment, file an issue in the W3C core-aam GitHub repository. If this is + not feasible, send email to public-aria@w3.org (comment archive). In-progress updates to the document may be viewed in the publicly visible editors' draft. +

+
+
+

Introduction

+

+ The Core Accessibility API Mappings specifies how WAI-ARIA roles, states, and + [=ARIA/properties=] are expected to be exposed by user agents via platform accessibility APIs. It is part of a set of resources that + define and support the WAI-ARIA specification which includes the following documents: +

+ +

+ For an introduction to WAI-ARIA, see the + WAI-ARIA Overview. +

+
+

Accessibility APIs

+

+ Accessibility APIs make it possible to communicate accessibility information about user interfaces to assistive + technologies. This information includes: +

+
    +
  1. Descriptive properties (role, name, value, position, etc.)
  2. +
  3. Transient states (pressed, focused, etc.)
  4. +
  5. Events (text changed, button was clicked, checkbox was toggled)
  6. +
  7. Actions the user might take (click, check/toggle, drag, etc.)
  8. +
  9. Relationships (parent/child, description/described object, previous object/next object, etc.)
  10. +
  11. Textual content
  12. +
+

Accessibility APIs covered by this specification are:

+ +

+ The WAI-ARIA 1.0 User Agent Implementation Guide included mappings for [[UIA-EXPRESS]], also known as IAccessibleEx, + which was implemented in Microsoft Internet Explorer 8.0 - 11. New implementations are strongly encouraged to use [[[UI-AUTOMATION]]] instead. +

+

+ If user agent developers need to expose information using other accessibility APIs, it is recommended that they work closely with the + developer of the platform where the API runs, and assistive technology developers on that platform. +

+
+
+

Comparing Accessibility APIs

+

+ For various technological and historical reasons, accessibility APIs do not all work in the same way. In many cases, there is no simple one-to-one relationship between how each of them names + or exposes roles, states, and properties to assistive technologies. The following subsections describe a few of the distinguishing characteristics of some of the APIs. +

+
+
ATK/AT-SPI
+

+ MSAA, IAccessible2, UIA, and AX API each define an API that is shared by both the software application exposing information about its content and interactive components, and the assistive + technology consuming that information. Conversely, Linux/GNOME separates that shared interface into its two aspects, each represented by a different accessibility API: ATK or AT-SPI. +

+

+ ATK defines an interface that is implemented by software in order to expose accessibility information, whereas AT-SPI is a desktop service that gathers accessibility information from + active applications and relays it to other interested applications, usually assistive technologies. +

+

+ For example, the GNOME GUI toolkit [GTK], implements the relevant aspects of ATK for each widget (menu, combobox, checkbox, etc.) in order that GTK widgets expose accessibility information + about themselves. AT-SPI then acquires the information from applications built with GTK and makes it available to interested parties. +

+

+ ATK is most relevant to implementors, whereas AT-SPI is relevant to consumers. In the context of mapping WAI-ARIA roles, states and properties, user agents are implementors and use ATK. + Assistive Technologies are consumers, and use AT-SPI. +

+
+
+
UIA (UI Automation)
+

+ UI Automation expresses every element of the application user interface as an automation element. Automation elements form the nodes of the application accessibility tree, that can be + queried, traversed and interacted with by automation clients. +

+

There are several concepts central to UI Automation:

+
    +
  • Automation element - controls and some application content are presented as automation elements.
  • +
  • + Element properties - Automation elements have several common properties describing native framework element characteristics in an agnostic way that all automation clients can understand. + There are several ways to access element property values, described below. +
  • +
  • + Control Patterns - Some common interactivity in different frameworks is expressed as control patterns in UIA, allowing different automation clients to interact with controls using common + programmatic interfaces. +
  • +
  • Events - Similar to other accessibility APIs, automation elements support various events that allow automation providers to notify clients on important state changes.
  • +
+

+ All automation elements inherit from the IUIAutomationElement interface and all properties that are not specific to a particular control pattern can be queried through that + interface. There are several ways to access UI Automation element properties: +

+
    +
  • Direct property accessors to the current values - Current{PropertyName}, e.g. IUIAutomationElement::CurrentName for the Name property
  • +
  • + Cached property accessors - Cached{PropertyName}, e.g. IUIAutomationElement::CachedName for the Name property. Using cached values is preferred + when providers and clients are used in remote environments. +
  • +
  • + GetCurrentPropertyValue and passing the UIA Property ID enumeration value corresponding to that property to get the current value, e.g. + IUIAutomationElement::GetCurrentPropertyValue(UIA_NamePropertyId) for the Name property. +
  • +
  • + GetCachedPropertyValue and passing the UIA Property ID enumeration value corresponding to that property to get the cached value, e.g. + IUIAutomationElement::GetCachedPropertyValue(UIA_NamePropertyId) for the Name property. +
  • +
+

+ Properties for specific UIA control patterns are queried the same way using relevant control pattern interfaces. Taking Toggle Pattern as an example, to query the ToggleState property + clients can use IUIAutomationTogglePattern::CurrentToggleState or IUIAutomationTogglePattern::GetCurrentPropertyValue(UIA_ToggleToggleStatePropertyId) to get the current value. +

+

+ The property mappings in this specification provide the {PropertyName} and do not specify all specific ways to access the property value. Automation clients can access current + or cached values using conventions described above, depending on specific needs and coding style conventions. +

+
+
+
Accessible Names and Descriptions
+

+ Each platform accessibility API includes a way to assign and retrieve accessible name and + accessible description properties for each accessible object created in the + accessibility tree. How these properties are implemented and what they are called vary depending on the API. +

+

+ For instance, in MSAA, all accessible objects support the accName property, which stores the object's + accessible name. Where the object also supports having an + accessible description, MSAA stores this property in the object's accDescription property. +

+

+ Software using ATK can read and write to an object's accessible-name and accessible-description properties. In turn, AT-SPI can query the values of those + properties through its atspi_accessible_get_name and atspi_accessible_get_description functions. +

+

+ Automation elements in the UIA accessibility tree have a Name property. Where the object also supports having an + accessible description, UIA stores this property in the object's FullDescription property. +

+

+ The approach to accessible names and + accessible descriptions in AX API is somewhat different to the other platform + APIs. Accessible names are exposed using the AXTitle property when the name is visually rendered, while the + AXDescription property is used when the object's name is not rendered visually. An object's + accessible description, where provided by + aria-description or aria-describedby, should be exposed in the accessibilityCustomContent API. Otherwise, it should be exposed as AXHelp. +

+

For more detail, see the Accessible Name and Description Computation specification.

+
+
+
+
+
+

RFC-2119 Keywords

+

+ RFC-2119 keywords are formatted in uppercase and contained in a strong element with class="rfc2119". When the keywords shown above are used, but do not share this + format, they do not convey formal information in the RFC 2119 sense, and are merely explanatory, i.e., informative. As much as possible, such usages are avoided in this specification. +

+
+
+

Normative and Informative Sections

+

The indication whether a section is normative or non-normative (informative) applies to the entire section including sub-sections.

+

+ Informative sections provide information useful to understanding the specification. Such sections may contain examples of recommended practice, but it is not required to follow such + recommendations in order to conform to this specification. +

+
+
+

Features Deprecated in WAI-ARIA

+

+ The WAI-ARIA specification lists some features as deprecated. Although this means authors are encouraged not to use such features, it is expected + that the features could still be used in legacy content. Therefore, it is important that user agents continue to map these features to accessibility APIs, and doing so is part of conformance + to this specification. When future versions of the WAI-ARIA specification change such features from deprecated to removed, they will be removed from the mappings as well and user agents will + no longer be asked to continue support for those features. +

+
+
+
+

Important Terms

+
+

While some terms are defined in place, the following definitions are used throughout this document.

+
+
Accessibility Subtree
+
+

+ An [=accessible object=] in the accessibility tree and its descendants in that tree. It does not include objects which have relationships other than parent-child in that tree. For + example, it does not include objects linked via aria-flowto unless those objects are also descendants in the accessibility tree. +

+
+
Activation behavior
+
+

+ The action taken when an event, typically initiated by users through an input device, causes an element to fulfill a defined role. The role may be defined for that element by the + host language, or by author-defined variables, or both. The role for any given element may be a generic action, or may be unique to that element. For example, the activation behavior of + an HTML or SVG <a> element shall be to cause the user agent to traverse + the link specified in the href attribute, with the further optional parameter of specifying the browsing context for the traversal (such as the current window or tab, a + named window, or a new window); the activation behavior of an HTML <input> element with the type attribute + value submit shall be to send the values of the form elements to an author-defined IRI by the author-defined + HTTP method. +

+
+
+
+
+
+

Mapping WAI-ARIA to Accessibility APIs

+
+

General rules for exposing WAI-ARIA semantics

+

+ Where supported by the platform Accessibility API, [=user agents=] expose WAI-ARIA + semantics through the standard mechanisms of the desktop accessibility API. For example, for + WAI-ARIA widgets, compare how the widget is exposed in a similar desktop widget. In general most + WAI-ARIA widget capabilities are exposed through the role, value, Boolean states, and + relations of the accessibility API. +

+

+ With respect to WAI-ARIA 1.0 and 1.1, accessibility APIs operate in one + direction only. User agents publish WAI-ARIA information (roles, states, and properties) via an accessibility + API, and an AT can acquire that information using the same + API. However, the other direction is not supported. WAI-ARIA 1.0 and 1.1 do + not define mechanisms for assistive technologies to directly modify WAI-ARIA information. +

+

+ The terms "exposing", "mapping", and "including" refer to the creation of accessible object nodes within the + accessibility tree, and populating these objects with Accessibility API specific states and [=ARIA/properties=]. +

+
+
+

Conflicts between native markup semantics and WAI-ARIA

+

+ WAI-ARIA roles, states, and properties are intended to add semantic information when native host language + elements with these semantics are not available, and are generally used on elements that have no native semantics of their own. They can also be used on elements that + have similar but not identical semantics to the intended object (for instance, a nested list could be used to represent a tree structure). This method can be part of a fallback strategy for + older browsers that have no WAI-ARIA implementation, or because native presentation of the repurposed element reduces the amount of + style and/or script needed. Except for the cases outlined below, [=user agents=] MUST always use the WAI-ARIA semantics to define + how it exposes the element to accessibility APIs, rather than using the host language semantics. +

+

+ Host languages can have features that have implicit WAI-ARIA semantics corresponding to roles. When a + WAI-ARIA role is provided that has a corresponding role in the accessibility + API, user agents MUST use the semantic of the WAI-ARIA role for processing, + not the native semantic, unless the role requires WAI-ARIA states and properties whose attributes are explicitly forbidden on the + native element by the host language. Values for roles do not conflict in the same way as values for states and properties, and because authors are expected to have a valid reason to provide + a WAI-ARIA role even on elements that would not normally be repurposed. For example, spin buttons are typically constructed from + text fields (<input type="text">) in order to get most of the default keyboard support. But, the native role, "text field", is not correct because it + does not properly communicate the additional features of a spin button. The author adds the WAI-ARIA role of + spinbutton (<input type="text" role="spinbutton" ...>) so that the control is properly mapped in the accessibility + API. When a WAI-ARIA role is provided that does not have a corresponding role + in the accessibility API, user agents MAY expose the native semantic in addition to the + WAI-ARIA role. If the host language element is overridden by a + WAI-ARIA role whose semantics or structure is not equivalent to the native host language semantics or to a subclass of those + semantics, then treat any child elements having roles specified as Allowed Accessibility Child Roles as having presentation or + none. +

+

+ The above text differs slightly from the WAI-ARIA specification. The requirement for user agents to expose the + WAI-ARIA role instead of the native role was intended to only apply in cases where there is a direct mapping from the + WAI-ARIA role to a corresponding role in the accessibility API. The wording + of the requirement is not clear in the WAI-ARIA specification, however, and has been interpreted differently by implementers. The + requirement has been clarified here and an additional statement added to indicate that user agents may expose native semantics if there is not a direct mapping to a role in the accessibility + API. Because there are differing implementations, authors will be advised against adding such + WAI-ARIA roles to native elements that have their own semantics in the + WAI-ARIA Authoring Practices Guide. +

+

+ When WAI-ARIA states and properties correspond to host language features that have the same implicit + WAI-ARIA semantic, it can be problematic if the values become out of sync. For example, the + HTML checked attribute and the aria-checked attribute could have conflicting values. Therefore to prevent providing + conflicting states and properties to assistive technologies, host languages will explicitly declare where the use of + WAI-ARIA attributes on a host language element conflict with native attributes for that element. When a host language declares a + WAI-ARIA attribute to be in direct semantic conflict with a native attribute for a given element, user + agents MUST ignore the WAI-ARIA attribute and instead use the host language attribute with the same implicit semantic. +

+

+ Host languages might also document features that cannot be overridden with WAI-ARIA (these are called "strong native + semantics"). These can be features that have implicit WAI-ARIA semantics as well as features where the processing would be + uncertain if the semantics were changed with WAI-ARIA. While conformance checkers might signal an error or warning when a + WAI-ARIA role is used on elements with strong native semantics, user agents MUST still use the value of the semantic of the + WAI-ARIA role when exposing the element to accessibility APIs. +

+
+
+

Exposing attributes that do not directly map to accessibility API properties

+

+ Platform accessibility APIs might have features that are not in WAI-ARIA. Likewise, + WAI-ARIA exposes capabilities that are not supported by accessibility + APIs at the time of publication. There typically is not a one to one relationship between all + WAI-ARIA attributes and platform accessibility APIs. + When WAI-ARIA roles, states and [=ARIA/properties=] do not directly map to an + accessibility API, and there is a mechanism in the API to expose the + WAI-ARIA role, states, and properties and their values, [=user agents=] MUST expose the + WAI-ARIA data using that mechanism as follows: +

+ +

+ MSAA does not provide a mechanism for exposing attributes that do not map directly to the API and among implementers, there is no + agreement on how to do it. +

+

+ User agents MUST also expose the entire role string through this mechanism and MAY also expose WAI-ARIA attributes and values + through this mechanism even when there is a direct mapping to an accessibility API. +

+

+ Browser implementers are advised to publicly document their API methods for exposing any relevant information, so that + assistive technology developers can use the API to support user features. +

+
+
+

Role mapping

+

+ Platform accessibility APIs traditionally have had a finite set of predefined roles that are expected by + assistive technologies on that platform and only one or two roles may be exposed. In contrast, + WAI-ARIA allows multiple roles to be specified as an ordered set of space-separated valid role tokens. The additional roles are + fallback roles similar to the concept of specifying multiple fonts in case the first choice font type is not supported. +

+
+

General rules

+

+ User agents MUST expose the WAI-ARIA role string if the API supports a + mechanism to do so. This allows assistive technologies to do their own additional processing of roles. +

+
    +
  • + MSAA: + not supported. User agents SHOULD NOT expose a custom role in + MSAA's accRole property. +
  • +
  • IAccessible2: expose as an object attribute pair (xml-roles:"string")
  • +
  • + UIA: expose as AriaRole property. The AriaRole property can also support secondary roles using a space as a + separator. +
  • +
  • + ATK/AT-SPI: expose as an object attribute pair + (xml-roles:"string") +
  • +
+
+
+

Computed Role

+

+ The `computedrole` of an element is a string that represents the role of the element as computed by the browser engine. The `computedrole` is used primarily for the purposes of developer + tools and specification comformance and interoperability testing. +

+

+ User agents provide this role string, for example, in developer tools, and in response to the WebDriver function + `getComputedRole`, which is used for + interoperability testing of ARIA, HTML-AAM, and other specifications. +

+ +

+ When an element has a role but is not contained in the required context (for example, an orphaned `listitem` without the required accessible parent of role `list`), User Agents MUST ignore + the role token, and return the `computedrole` as if the ignored role token had not been included. +

+ +

+ When host language elements do not have an exact or equivalent mapping to a valid, non-abstract role, the related Accessibilty API Mapping extension specification MAY specify a unique + `computedrole` string as the return value for interoperability testing purposes, such as `<video> -> "html-video"` in [[HTML-AAM]]. However, authors MUST NOT use any + host-language-prefixed `computedrole` string in the `role` attribute (such as `html-video`), unless the token also matches valid, defined role (such as `dpub-chapter`). User Agents MUST + ignore any abstract or invalid role token. +

+ +
+
+

Role Mapping Tables

+

alert

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + alert +
Computed Role +

alert

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_ALERT
+ Event: The user agent SHOULD fire EVENT_SYSTEM_ALERT. [Note 2] +
UIA + Control Type: Group
+ Localized Control Type: alert
+ LiveSetting: Assertive (2)
+ Event: The user agent SHOULD fire a system alert event. [Note 2] +
ATK/AT-SPI + Role: ROLE_NOTIFICATION
+ Event: The user agent SHOULD fire a system alert event. [Note 2] +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXApplicationAlert
+ Event: The user agent SHOULD fire a system alert event. [Note 2] +
+

alertdialog

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + alertdialog +
Computed Role +

alertdialog

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_DIALOG
+ Event: The user agent SHOULD fire EVENT_SYSTEM_ALERT. [Note 2] +
UIA + Control Type: Pane
+ Event: The user agent SHOULD fire a system alert event. [Note 2] +
ATK/AT-SPI + Role: ROLE_ALERT
+ Interface: Window
+ Event: The user agent SHOULD fire a system alert event. [Note 2] +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXApplicationAlertDialog
+ Event: The user agent SHOULD fire a system alert event. [Note 2] +
+

application

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + application +
Computed Role +

application

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_APPLICATION +
UIA + Control Type: Pane
+ Localized Control Type: application +
ATK/AT-SPI + Role: ROLE_EMBEDDED +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXWebApplication
+
+

article

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + article +
Computed Role +

article

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_DOCUMENT
+ State: STATE_SYSTEM_READONLY
+ Object Attribute: xml-roles:article +
UIA + Control Type: Group
+ Localized Control Type: article +
ATK/AT-SPI + Role: ROLE_ARTICLE
+ Object Attribute: xml-roles:article +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXDocumentArticle
+
+

banner

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + banner +
Computed Role +

banner

+
MSAA + IAccessible2 + Role: IA2_ROLE_LANDMARK
+ Object Attribute: xml-roles:banner +
UIA + Control Type: Group
+ Localized Control Type: banner
+ Landmark Type: Custom
+ Localized Landmark Type: banner +
ATK/AT-SPI + Role: ROLE_LANDMARK
+ Object Attribute: xml-roles:banner +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXLandmarkBanner
+
+

blockquote

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + blockquote +
Computed Role +

blockquote

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_GROUPING
+ Role: IA2_ROLE_BLOCK_QUOTE +
UIA + Control Type: Group
+ Localized Control Type: blockquote +
ATK/AT-SPI + Role: ROLE_BLOCK_QUOTE
+
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: <nil>
+
+

button with default values for aria-pressed and aria-haspopup

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + button with default values for aria-pressed and + aria-haspopup +
Computed Role +

button

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_PUSHBUTTON +
UIA + Control Type: Button +
ATK/AT-SPI + Role: ROLE_PUSH_BUTTON +
+ AX API[Note 1] + + AXRole: AXButton
+ AXSubrole: <nil>
+
+

button with non-false value for aria-haspopup

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + button with non-false value for aria-haspopup +
Computed Role +

button

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_BUTTONMENU +
UIA + Control Type: Button +
ATK/AT-SPI + Role: ROLE_PUSH_BUTTON +
+ AX API[Note 1] + + AXRole: AXPopUpButton
+ AXSubrole: <nil>
+
+

button with defined value for aria-pressed

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + button with defined value for aria-pressed +
Computed Role +

button

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_PUSHBUTTON
+ Role: IA2_ROLE_TOGGLE_BUTTON +
UIA + Control Type: Button +
ATK/AT-SPI + Role: ROLE_TOGGLE_BUTTON +
+ AX API[Note 1] + + AXRole: AXCheckBox
+ AXSubrole: AXToggle
+
+

caption

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + caption +
Computed Role +

caption

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_GROUPING
+ Role: IA2_ROLE_CAPTION +
UIA + Control Type: Text +
ATK/AT-SPI + Role: ROLE_CAPTION +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: <nil>
+
+

cell

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + cell +
Computed Role +

cell

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_CELL
+ Interface: IAccessibleTableCell +
UIA + Control Type: DataItem
+ Localized Control Type: item
+ Control Pattern: GridItem
+ Control Pattern: TableItem +
ATK/AT-SPI + Role: ROLE_TABLE_CELL
+ Interface: TableCell +
+ AX API[Note 1] + + AXRole: AXCell
+ AXSubrole: <nil>
+
+

checkbox

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + checkbox +
Computed Role +

checkbox

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_CHECKBUTTON
+ See also: aria-checked in the State and Property Mapping Tables +
UIA + Control Type: Checkbox
+ See also: aria-checked in the State and Property Mapping Tables +
ATK/AT-SPI + Role: ROLE_CHECK_BOX
+ See also: aria-checked in the State and Property Mapping Tables +
+ AX API[Note 1] + + AXRole: AXCheckBox
+ AXSubrole: <nil>
+ See also: aria-checked in the State and Property Mapping Tables +
+

code

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + code +
Computed Role +

code

+
MSAA + IAccessible2 + Role: IA2_ROLE_TEXT_FRAME
+ Object Attribute: xml-roles:code +
UIA + Control Type: Text
+ Localized Control Type: code +
ATK/AT-SPI + Role: ROLE_STATIC
+ Object Attribute: xml-roles:code +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXCodeStyleGroup
+
+

columnheader

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + columnheader +
Computed Role +

columnheader

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_COLUMNHEADER
+ Interface: IAccessibleTableCell +
UIA + Control Type: DataItem
+ Localized Control Type: column header
+ Control Pattern: GridItem
+ Control Pattern: TableItem +
ATK/AT-SPI + Role: ROLE_COLUMN_HEADER
+ Interface: TableCell +
+ AX API[Note 1] + + AXRole: AXCell
+ AXSubrole: <nil>
+
+

combobox

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + combobox +
Computed Role +

combobox

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_COMBOBOX
+ State: STATE_SYSTEM_HASPOPUP
+ State: STATE_SYSTEM_COLLAPSED if aria-expanded is not "true" +
UIA + Control Type: Combobox +
ATK/AT-SPI + Role: ROLE_COMBO_BOX
+ State: STATE_EXPANDABLE
+ State: STATE_HAS_POPUP +
+ AX API[Note 1] + + AXRole: AXComboBox
+ AXSubrole: <nil>
+
+

comment

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + comment +
Computed Role +

comment

+
MSAA + IAccessible2 + Role: IA2_ROLE_COMMENT
+ Object Attribute: xml-roles:comment +
UIA + Control Type: Group
+ Localized Control Type: comment
+
ATK/AT-SPI + Role: ROLE_COMMENT
+ Object Attribute: xml-roles:comment +
+ AX API[Note 1] + + AXRole: AXGroup
+
+

complementary

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + complementary +
Computed Role +

complementary

+
MSAA + IAccessible2 + Role: IA2_ROLE_LANDMARK
+ Object Attribute: xml-roles:complementary +
UIA + Control Type: Group
+ Localized Control Type: complementary
+ Landmark Type: Custom
+ Localized Landmark Type: complementary +
ATK/AT-SPI + Role: ROLE_LANDMARK
+ Object Attribute: xml-roles:complementary +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXLandmarkComplementary
+
+

contentinfo

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + contentinfo +
Computed Role +

contentinfo

+
MSAA + IAccessible2 + Role: IA2_ROLE_LANDMARK
+ Object Attribute: xml-roles:contentinfo +
UIA + Control Type: Group
+ Localized Control Type: content information
+ Landmark Type: Custom
+ Localized Landmark Type: content information +
ATK/AT-SPI + Role: ROLE_LANDMARK
+ Object Attribute: xml-roles:contentinfo +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXLandmarkContentInfo
+
+

definition

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + definition +
Computed Role +

definition

+
MSAA + IAccessible2 + Object Attribute: xml-roles:definition +
UIA + Control Type: Group
+ Localized Control Type: definition +
ATK/AT-SPI + Role: ROLE_DESCRIPTION_VALUE
+ Object Attribute: xml-roles:definition +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXDefinition
+
+

deletion

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + deletion +
Computed Role +

deletion

+
MSAA + IAccessible2 + Role: IA2_ROLE_CONTENT_DELETION +
UIA + Control Type: Text
+ Localized Control Type: deletion +
ATK/AT-SPI + Role: ROLE_CONTENT_DELETION
+ Object Attribute: xml-roles:deletion +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXDeleteStyleGroup
+ AXAttributedStringForTextMarkerRange: contains AXIsSuggestedDeletion = 1; for all text contained in a deletion +
+

dialog

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + dialog +
Computed Role +

dialog

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_DIALOG +
UIA + Control Type: Pane +
ATK/AT-SPI + Role: ROLE_DIALOG
+ Interface: Window +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXApplicationDialog
+
+

directory

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + directory +
Computed Role +

list

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_LIST +
UIA + Control Type: List +
ATK/AT-SPI + Role: ROLE_LIST +
+ AX API[Note 1] + + AXRole: AXList
+ AXSubrole: AXContentList
+
+

document

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + document +
Computed Role +

document

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_DOCUMENT
+ State: STATE_SYSTEM_READONLY +
UIA + Control Type: Document +
ATK/AT-SPI + Role: ROLE_DOCUMENT_FRAME +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXDocument
+
+

emphasis

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + emphasis +
Computed Role +

emphasis

+
MSAA + IAccessible2 + Role: IA2_ROLE_TEXT_FRAME
+ Object Attribute: xml-roles:emphasis +
UIA + Control Type: Text
+ Localized Control Type: emphasis +
ATK/AT-SPI + Role: ROLE_STATIC
+ Object Attribute: xml-roles:emphasis +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXEmphasisStyleGroup
+
+

feed

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + feed +
Computed Role +

feed

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_GROUPING
+ Object Attribute: xml-roles:feed +
UIA + Control Type: Group
+ Localized Control Type: feed +
ATK/AT-SPI + Role: ROLE_PANEL
+ Object Attribute: xml-roles:feed +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXApplicationGroup
+
+

figure

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + figure +
Computed Role +

figure

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_GROUPING
+ Object Attribute: xml-roles:figure +
UIA + Control Type: Group
+ Localized Control Type: figure +
ATK/AT-SPI + Role: ROLE_PANEL
+ Object Attribute: xml-roles:figure +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: <nil>
+
+

form with an accessible name

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + form with an accessible name +
Computed Role +

form

+
MSAA + IAccessible2 + Role: IA2_ROLE_FORM
+ Object Attribute: xml-roles:form +
UIA + Control Type: Group
+ Localized Control Type: form
+ Landmark Type: Form +
ATK/AT-SPI + Role: ROLE_LANDMARK
+ Object Attribute: xml-roles:form +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXLandmarkForm
+
+

form without an accessible name

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + form without an accessible name +
Computed Role +

form

+
MSAA + IAccessible2 + Do not expose the element as a landmark. Use the native host language role of the element instead. +
UIA + Do not expose the element as a landmark. Use the native host language role of the element instead. +
ATK/AT-SPI + Do not expose the element as a landmark. Use the native host language role of the element instead. +
+ AX API[Note 1] + + Do not expose the element as a landmark. Use the native host language role of the element instead. +
+

generic

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + generic +
Computed Role +

generic

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_GROUPING
+ Role: IA2_ROLE_SECTION +
UIA + Control Type: Group +
ATK/AT-SPI + Role: ROLE_SECTION
+
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: <nil>
+
+

grid

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + grid +
Computed Role +

grid

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_TABLE
+ Object Attribute: xml-roles:grid
+ Interface: IAccessibleTable2
+ Method: IAccessible::accSelect()
+ Method: IAccessible::get_accSelection() +
UIA + Control Type: DataGrid
+ Control Pattern: Grid
+ Control Pattern: Table
+ Control Pattern: Selection +
ATK/AT-SPI + Role: ROLE_TABLE
+ Object Attribute: xml-roles:grid
+ Interface: Table
+ Interface: Selection +

+ Because WAI-ARIA does not support modifying the selection via the accessibility API, user agents MUST return + false for all Selection methods that provide a means to modify the selection. +

+
+ AX API[Note 1] + + AXRole: AXTable
+ AXSubrole: <nil>
+ AXColumnHeaderUIElements: a list of pointers to the columnheader elements
+ AXHeader: a pointer to the row or group containing those columnheader elements
+ AXRowHeaderUIElements: a list of pointers to the rowheader elements +
+

gridcell

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + gridcell +
Computed Role +

gridcell

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_CELL
+ Interface: IAccessibleTableCell +
UIA + Control Type: DataItem
+ Localized Control Type: item
+ Control Pattern: SelectionItem
+ Control Pattern: GridItem
+ Control Pattern: TableItem
+ SelectionItem.SelectionContainer: the containing grid +
ATK/AT-SPI + Role: ROLE_TABLE_CELL
+ Interface: TableCell +
+ AX API[Note 1] + + AXRole: AXCell
+ AXSubrole: <nil>
+
+

group

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + group +
Computed Role +

group

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_GROUPING +
UIA + Control Type: Group +
ATK/AT-SPI + Role: ROLE_PANEL +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXApplicationGroup
+
+

heading

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + heading +
Computed Role +

heading

+
MSAA + IAccessible2 + Role: IA2_ROLE_HEADING
+ Object Attribute: xml-roles:heading +
UIA + Control Type: Text
+ Localized Control Type: heading +
ATK/AT-SPI + Role: ROLE_HEADING +
+ AX API[Note 1] + + AXRole: AXHeading
+ AXSubrole: <nil>
+
+

image

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + image +
Computed Role +

image

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_GRAPHIC
+ Interface: IAccessibleImage +
UIA + Control Type: Image +
ATK/AT-SPI + Role: ROLE_IMAGE
+ Interface: Image +
+ AX API[Note 1] + + AXRole: AXImage
+ AXSubrole: <nil>
+
+

img

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + img +
Computed Role +

image

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_GRAPHIC
+ Interface: IAccessibleImage +
UIA + Control Type: Image +
ATK/AT-SPI + Role: ROLE_IMAGE
+ Interface: Image +
+ AX API[Note 1] + + AXRole: AXImage
+ AXSubrole: <nil>
+
+

insertion

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + insertion +
Computed Role +

insertion

+
MSAA + IAccessible2 + Role: IA2_ROLE_CONTENT_INSERTION +
UIA + Control Type: Text
+ Localized Control Type: insertion +
ATK/AT-SPI + Role: ROLE_CONTENT_INSERTION
+ Object Attribute: xml-roles:insertion +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXInsertStyleGroup
+ AXAttributedStringForTextMarkerRange: contains AXIsSuggestedInsertion = 1; for all text contained in a insertion +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + link +
Computed Role +

link

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_LINK
+ State: STATE_SYSTEM_LINKED
+ State: STATE_SYSTEM_LINKED on its descendants
+ Interface: IAccessibleHypertext +
UIA + Control Type: HyperLink
+ Control Pattern: Value +
ATK/AT-SPI + Role: ROLE_LINK
+ Interface: HyperlinkImpl +
+ AX API[Note 1] + + AXRole: AXLink
+ AXSubrole: <nil>
+
+

list

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + list +
Computed Role +

list

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_LIST
+ State: STATE_SYSTEM_READONLY +
UIA + Control Type: List +
ATK/AT-SPI + Role: ROLE_LIST +
+ AX API[Note 1] + + AXRole: AXList
+ AXSubrole: AXContentList
+
+

listbox without an accessibility parent of combobox

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + listbox +
Computed Role +

listbox

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_LIST
+ Method: IAccessible::accSelect()
+ Method: IAccessible::get_accSelection() +
UIA + Control Type: List
+ Control Pattern: Selection +
ATK/AT-SPI + Role: ROLE_LIST_BOX
+ Interface: Selection +

+ Because WAI-ARIA does not support modifying the selection via the accessibility API, user agents MUST return + false for all Selection methods that provide a means to modify the selection. +

+
+ AX API[Note 1] + + AXRole: AXList
+ AXSubrole: <nil>
+
+

listbox with an accessibility parent of combobox

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + listbox +
Computed Role +

listbox

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_LIST
+ Method: IAccessible::accSelect()
+ Method: IAccessible::get_accSelection() +
UIA + Control Type: List
+ Control Pattern: Selection +
ATK/AT-SPI + Role: ROLE_MENU
+ Interface: Selection +

+ Because WAI-ARIA does not support modifying the selection via the accessibility API, user agents MUST return + false for all Selection methods that provide a means to modify the selection. +

+
+ AX API[Note 1] + + AXRole: AXList
+ AXSubrole: <nil>
+
+

listitem

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + listitem +
Computed Role +

listitem

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_LISTITEM
+ State: STATE_SYSTEM_READONLY +
UIA + Control Type: ListItem
+ Control Pattern: SelectionItem
+ SelectionItem.SelectionContainer: the containing list +
ATK/AT-SPI + Role: ROLE_LIST_ITEM +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: <nil>
+
+

log

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + log +
Computed Role +

log

+
MSAA + IAccessible2 + Object Attribute: xml-roles:log
+ Object Attribute: container-live:polite
+ Object Attribute: live:polite
+ Object Attribute: container-live-role:log +
UIA + Control Type: Group
+ Localized Control Type: log
+ LiveSetting: Polite (1) +
ATK/AT-SPI + Role: ROLE_LOG
+ Object Attribute: xml-roles:log
+ Object Attribute: container-live:polite
+ Object Attribute: live:polite
+ Object Attribute: container-live-role:log +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXApplicationLog
+
+

main

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + main +
Computed Role +

main

+
MSAA + IAccessible2 + Role: IA2_ROLE_LANDMARK
+ Object Attribute: xml-roles:main +
UIA + Control Type: Group
+ Localized Control Type: main
+ Landmark Type: Main +
ATK/AT-SPI + Role: ROLE_LANDMARK
+ Object Attribute: xml-roles:main +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXLandmarkMain
+
+

mark

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + mark +
Computed Role +

mark

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_GROUPING
+ Role: IA2_ROLE_MARK
+ Object Attribute: xml-roles:mark +
UIA + Control Type: Group +
ATK/AT-SPI + Role: ROLE_MARK
+ Object Attribute: xml-roles:mark +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXRoleDescription: highlight
+ AXAttributedStringForTextMarkerRange: contains AXHighlight = 1; for all text contained in a mark +
+

marquee

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + marquee +
Computed Role +

marquee

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_ANIMATION
+ Object Attribute: xml-roles:marquee
+ Object Attribute: container-live:off
+ Object Attribute: live:off +
UIA + Control Type: Group
+ Localized Control Type: marquee
+ LiveSetting: Off (0) +
ATK/AT-SPI + Role: ROLE_MARQUEE
+ Object Attribute: container-live:off
+ Object Attribute: live:off +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXApplicationMarquee
+
+

math

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + math +
Computed Role +

math

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_EQUATION +
UIA + Control Type: Group
+ Localized Control Type: math +
ATK/AT-SPI + Role: ROLE_MATH +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXDocumentMath
+
+

menu

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + menu +
Computed Role +

menu

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_MENUPOPUP
+ Method: IAccessible::accSelect()
+ Method: IAccessible::get_accSelection() +
UIA + Control Type: Menu +
ATK/AT-SPI + Role: ROLE_MENU
+ Interface: Selection +

+ Because WAI-ARIA does not support modifying the selection via the accessibility API, user agents MUST return + false for all Selection methods that provide a means to modify the selection. +

+
+ AX API[Note 1] + + AXRole: AXMenu
+ AXSubrole: <nil>
+
+

menubar

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + menubar +
Computed Role +

menubar

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_MENUBAR
+ Method: IAccessible::accSelect()
+ Method: IAccessible::get_accSelection() +
UIA + Control Type: MenuBar +
ATK/AT-SPI + Role: ROLE_MENU_BAR
+ Interface: Selection +

+ Because WAI-ARIA does not support modifying the selection via the accessibility API, user agents MUST return + false for all Selection methods that provide a means to modify the selection. +

+
+ AX API[Note 1] + + AXRole: AXMenuBar
+ AXSubrole: <nil>
+
+

menuitem

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + menuitem +
Computed Role +

menuitem

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_MENUITEM +
UIA + Control Type: MenuItem +
ATK/AT-SPI + Role: ROLE_MENU_ITEM +
+ AX API[Note 1] + + AXRole: AXMenuItem
+ AXSubrole: <nil>
+
+

menuitemcheckbox

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + menuitemcheckbox +
Computed Role +

menuitemcheckbox

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_CHECKBUTTON or ROLE_SYSTEM_MENUITEM
+ Role: IA2_ROLE_CHECK_MENU_ITEM
+ See also: aria-checked in the State and Property Mapping Tables +
UIA + Control Type: MenuItem
+ Control Pattern: Toggle
+ See also: aria-checked in the State and Property Mapping Tables +
ATK/AT-SPI + Role: ROLE_CHECK_MENU_ITEM
+ See also: aria-checked in the State and Property Mapping Tables +
+ AX API[Note 1] + + AXRole: AXMenuItem
+ AXSubrole: <nil>
+ See also: aria-checked in the State and Property Mapping Tables +
+

menuitemradio

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + menuitemradio +
Computed Role +

menuitemradio

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_RADIOBUTTON or ROLE_SYSTEM_MENUITEM
+ Role: IA2_ROLE_RADIO_MENU_ITEM
+ See also: aria-checked in the State and Property Mapping Tables +
UIA + Control Type: MenuItem
+ Control Pattern: Toggle
+ Control Pattern: SelectionItem
+ See also: aria-checked in the State and Property Mapping Tables +
ATK/AT-SPI + Role: ROLE_RADIO_MENU_ITEM
+ See also: aria-checked in the State and Property Mapping Tables +
+ AX API[Note 1] + + AXRole: AXMenuItem
+ AXSubrole: <nil>
+ See also: aria-checked in the State and Property Mapping Tables +
+

meter

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + meter +
Computed Role +

meter

+
MSAA + IAccessible2 + Role: IA2_ROLE_LEVEL_BAR
+ Interface: IAccessibleValue +
UIA + Control Type: ProgressBar
+ Localized Control Type: meter
+ Control Pattern: RangeValue +
ATK/AT-SPI + Role: ROLE_LEVEL_BAR
+ Interface: Value +
+ AX API[Note 1] + + AXRole: AXLevelIndicator
+ AXSubrole: AXMeter
+
+

navigation

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + navigation +
Computed Role +

navigation

+
MSAA + IAccessible2 + Role: IA2_ROLE_LANDMARK
+ Object Attribute: xml-roles:navigation +
UIA + Control Type: Group
+ Localized Control Type: navigation
+ Landmark Type: Navigation +
ATK/AT-SPI + Role: ROLE_LANDMARK
+ Object Attribute: xml-roles:navigation +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXLandmarkNavigation
+
+

none

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + none +
Computed Role +

none

+
MSAA + IAccessible2 +

+ For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in the + accessibility tree, expose it as IA2_ROLE_TEXT_FRAME. [=user agents=] SHOULD prune empty descendants from the + accessibility tree. +

+
UIA +

+ For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in the + accessibility tree, expose it using the text pattern. [=user agents=] SHOULD prune empty descendants from the + accessibility tree. +

+
ATK/AT-SPI +

+ For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in the + accessibility tree, expose it as ROLE_SECTION. [=user agents=] SHOULD prune empty descendants from the + accessibility tree. +

+
+ AX API[Note 1] + +

+ For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in the + accessibility tree, expose it as AXGroup. [=user agents=] SHOULD prune empty descendants from the accessibility tree. +

+
+

note

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + note +
Computed Role +

note

+
MSAA + IAccessible2 + Role: IA2_ROLE_NOTE +
UIA + Control Type: Group
+ Localized Control Type: note +
ATK/AT-SPI + Role: ROLE_COMMENT +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXDocumentNote
+
+

option not inside combobox

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + option not inside combobox +
Computed Role +

option

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_LISTITEM
+ See also: aria-checked in the State and Property Mapping Tables +
UIA + Control Type: ListItem
+ Control Pattern: Invoke
+ See also: aria-checked in the State and Property Mapping Tables +
ATK/AT-SPI + Role: ROLE_LIST_ITEM
+ See also: aria-checked in the State and Property Mapping Tables
+
+ AX API[Note 1] + + AXRole: AXStaticText
+ AXSubrole: <nil>
+ See also: aria-checked in the State and Property Mapping Tables +
+

option inside combobox

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + option inside combobox +
Computed Role +

option

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_LISTITEM
+ See also: aria-checked in the State and Property Mapping Tables +
UIA + Control Type: ListItem
+ Control Pattern: Invoke
+ See also: aria-checked in the State and Property Mapping Tables +
ATK/AT-SPI + Role: ROLE_MENU_ITEM
+ See also: aria-checked in the State and Property Mapping Tables
+
+ AX API[Note 1] + + AXRole: AXStaticText
+ AXSubrole: <nil>
+ See also: aria-checked in the State and Property Mapping Tables +
+

paragraph

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + paragraph +
Computed Role +

paragraph

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_GROUPING
+ Role: IA2_ROLE_PARAGRAPH +
UIA + Control Type: Text +
ATK/AT-SPI + Role: ROLE_PARAGRAPH +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: <nil>
+
+

presentation

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + presentation +
Computed Role +

none

+
MSAA + IAccessible2 +

+ For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in the + accessibility tree, expose it as IA2_ROLE_TEXT_FRAME. [=user agents=] SHOULD prune empty descendants from the + accessibility tree. +

+
UIA +

+ For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in the + accessibility tree, expose it using the text pattern. [=user agents=] SHOULD prune empty descendants from the + accessibility tree. +

+
ATK/AT-SPI +

+ For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in the + accessibility tree, expose it as ROLE_SECTION. [=user agents=] SHOULD prune empty descendants from the + accessibility tree. +

+
+ AX API[Note 1] + +

+ For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in the + accessibility tree, expose it as AXGroup. [=user agents=] SHOULD prune empty descendants from the accessibility tree. +

+
+

progressbar

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + progressbar +
Computed Role +

progressbar

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_PROGRESSBAR
+ State: STATE_SYSTEM_READONLY
+ Interface: IAccessibleValue +
UIA + Control Type: ProgressBar
+ Control Pattern: RangeValue if aria-valuenow, aria-valuemax, or aria-valuemin is present +
ATK/AT-SPI + Role: ROLE_PROGRESS_BAR
+ Interface: Value +

+ Because WAI-ARIA does not support modifying the value via the accessibility API, user agents MUST return + false for all Value methods that provide a means to modify the value. +

+
+ AX API[Note 1] + + AXRole: AXProgressIndicator
+ AXSubrole: <nil>
+
+

radio

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + radio +
Computed Role +

radio

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_RADIOBUTTON
+ See also: aria-checked in the State and Property Mapping Tables +
UIA + Control Type: RadioButton
+ Control Pattern: Toggle
+ Control Pattern: SelectionItem
+ See also: aria-checked in the State and Property Mapping Tables +
ATK/AT-SPI + Role: ROLE_RADIO_BUTTON
+ See also: aria-checked in the State and Property Mapping Tables +
+ AX API[Note 1] + + AXRole: AXRadioButton
+ AXSubrole: <nil>
+ See also: aria-checked in the State and Property Mapping Tables +
+

radiogroup

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + radiogroup +
Computed Role +

radiogroup

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_GROUPING +
UIA + Control Type: List +
ATK/AT-SPI + Role: ROLE_PANEL +
+ AX API[Note 1] + + AXRole: AXRadioGroup
+ AXSubrole: <nil>
+
+

region with an accessible name

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + region with an accessible name +
Computed Role +

region

+
MSAA + IAccessible2 + Role: IA2_ROLE_LANDMARK
+ Object Attribute: xml-roles:region +
UIA + Control Type: Group
+ Localized Control Type: region
+ Landmark Type: Custom
+ Localized Landmark Type: region +
ATK/AT-SPI + Role: ROLE_LANDMARK
+ Object Attribute: xml-roles:region +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXLandmarkRegion
+
+

region without an accessible name

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + region without an accessible name +
Computed Role +

Use native host language role.

+
MSAA + IAccessible2 + Do not expose the element as a landmark. Use the native host language role of the element instead. +
UIA + Do not expose the element as a landmark. Use the native host language role of the element instead. +
ATK/AT-SPI + Do not expose the element as a landmark. Use the native host language role of the element instead. +
+ AX API[Note 1] + + Do not expose the element as a landmark. Use the native host language role of the element instead. +
+

row not inside treegrid

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + row not inside treegrid +
Computed Role +

row

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_ROW +
UIA + Control Type: DataItem
+ Localized Control Type: row
+ Control Pattern: SelectionItem +
ATK/AT-SPI + Role: ROLE_TABLE_ROW +
+ AX API[Note 1] + + AXRole: AXRow
+ AXSubrole: <nil>
+
+

row inside treegrid

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + row inside treegrid +
Computed Role +

row

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_OUTLINEITEM +
UIA + Control Type: DataItem
+ Localized Control Type: row
+ Control Pattern: SelectionItem +
ATK/AT-SPI + Role: ROLE_TABLE_ROW +
+ AX API[Note 1] + + AXRole: AXRow
+ AXSubrole: <nil>
+
+

rowgroup

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + rowgroup +
Computed Role +

rowgroup

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_GROUPING +
UIA + Control Type: Group +
ATK/AT-SPI + Role: ROLE_PANEL +
+ AX API[Note 1] + + Not mapped +
+

rowheader

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + rowheader +
Computed Role +

rowheader

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_ROWHEADER
+ Interface: IAccessibleTableCell +
UIA + Control Type: HeaderItem +
ATK/AT-SPI + Role: ROLE_ROW_HEADER
+ Interface: TableCell +
+ AX API[Note 1] + + AXRole: AXCell
+ AXSubrole: <nil>
+
+

scrollbar

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + scrollbar +
Computed Role +

scrollbar

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_SCROLLBAR
+ Interface: IAccessibleValue +
UIA + Control Type: ScrollBar
+ Control Pattern: RangeValue +
ATK/AT-SPI + Role: ROLE_SCROLL_BAR
+ Interface: Value +

+ Because WAI-ARIA does not support modifying the value via the accessibility API, user agents MUST return + false for all Value methods that provide a means to modify the value. +

+
+ AX API[Note 1] + + AXRole: AXScrollBar
+ AXSubrole: <nil>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + search +
Computed Role +

search

+
MSAA + IAccessible2 + Role: IA2_ROLE_LANDMARK
+ Object Attribute: xml-roles:search +
UIA + Control Type: Group
+ Localized Control Type: search
+ Landmark Type: Search +
ATK/AT-SPI + Role: ROLE_LANDMARK
+ Object Attribute: xml-roles:search +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXLandmarkSearch
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + searchbox +
Computed Role +

searchbox

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_TEXT
+ Object Attribute: text-input-type:search +
UIA + Control Type: Edit
+ Localized Control Type: search box +
ATK/AT-SPI + Role: ROLE_ENTRY
+ Object Attribute: xml-roles:searchbox
+ Interface: EditableText if aria-readonly is not "true" +
+ AX API[Note 1] + + AXRole: AXTextField
+ AXSubrole: AXSearchField
+
+

separator (non-focusable)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + separator (non-focusable) +
Computed Role +

seperator

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_SEPARATOR +
UIA + Control Type: Separator +
ATK/AT-SPI + Role: ROLE_SEPARATOR +
+ AX API[Note 1] + + AXRole: AXSplitter
+ AXSubrole: <nil>
+
+

separator (focusable)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + separator (focusable) +
Computed Role +

seperator

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_SEPARATOR
+ Interface: IAccessibleValue +
UIA + Control Type: Thumb
+ Control Pattern: RangeValue +
ATK/AT-SPI + Role: ROLE_SEPARATOR
+ Interface: Value +

+ Because WAI-ARIA does not support modifying the value via the accessibility API, user agents MUST return + false for all Value methods that provide a means to modify the value. +

+
+ AX API[Note 1] + + AXRole: AXSplitter
+ AXSubrole: <nil>
+
+

slider

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + slider +
Computed Role +

slider

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_SLIDER
+ Interface: IAccessibleValue +
UIA + Control Type: Slider
+ Control Pattern: RangeValue +
ATK/AT-SPI + Role: ROLE_SLIDER
+ Interface: Value +

+ Because WAI-ARIA does not support modifying the value via the accessibility API, user agents MUST return + false for all Value methods that provide a means to modify the value. +

+
+ AX API[Note 1] + + AXRole: AXSlider
+ AXSubrole: <nil>
+
+

spinbutton

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + spinbutton +
Computed Role +

spinbutton

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_SPINBUTTON
+ Interface: IAccessibleValue +
UIA + Control Type: Spinner
+ Control Pattern: RangeValue +
ATK/AT-SPI + Role: ROLE_SPIN_BUTTON
+ Interface: Value +

+ Because WAI-ARIA does not support modifying the value via the accessibility API, user agents MUST return + false for all Value methods that provide a means to modify the value. +

+
+ AX API[Note 1] + + AXRole: AXIncrementor
+ AXSubrole: <nil>
+
+

status

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + status +
Computed Role +

status

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_STATUSBAR
+ Object Attribute: container-live:polite
+ Object Attribute: live:polite
+ Object Attribute: container-live-role:status +
UIA + Control Type: Group
+ Localized Control Type: status
+ LiveSetting: Polite (1) +
ATK/AT-SPI + Role: ROLE_STATUSBAR
+ Object Attribute: container-live:polite
+ Object Attribute: live:polite
+ Object Attribute: container-live-role:status +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXApplicationStatus
+
+

strong

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + strong +
Computed Role +

strong

+
MSAA + IAccessible2 + Role: IA2_ROLE_TEXT_FRAME
+ Object Attribute: xml-roles:strong +
UIA + Control Type: Text
+ Localized Control Type: strong +
ATK/AT-SPI + Role: ROLE_STATIC
+ Object Attribute: xml-roles:strong +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXStrongStyleGroup
+
+

subscript

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + subscript +
Computed Role +

subscript

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_GROUPING
+ Role: IA2_ROLE_TEXT_FRAME
+ Text Attribute: text-position:sub +
UIA + Control Type: Text
+ Styles used are exposed by IsSubscript attribute of the TextRange Control Pattern implemented on the accessible object. +
ATK/AT-SPI + Role: ROLE_SUBSCRIPT +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXSubscriptStyleGroup
+
+

suggestion

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + suggestion +
Computed Role +

suggestion

+
MSAA + IAccessible2 + Role: IA2_ROLE_SUGGESTION
+ Object Attribute: xml-roles:suggestion +
UIA + Control Type: Group
+ Localized Control Type: suggestion
+
ATK/AT-SPI + Role: ROLE_SUGGESTION
+ Object Attribute: xml-roles:suggestion +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXAttributedStringForTextMarkerRange: contains AXIsSuggestion = 1; for all text contained in a suggestion +
+

superscript

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + superscript +
Computed Role +

superscript

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_GROUPING
+ Role: IA2_ROLE_TEXT_FRAME
+ Text Attribute: text-position:super +
UIA + Control Type: Text
+ Styles used are exposed by IsSuperscript attribute of the TextRange Control Pattern implemented on the accessible object. +
ATK/AT-SPI + Role: ROLE_SUPERSCRIPT +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXSuperscriptStyleGroup
+
+

switch

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + switch +
Computed Role +

switch

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_CHECKBUTTON
+ Role: IA2_ROLE_TOGGLE_BUTTON
+ Object Attribute: xml-roles:switch
+ See also: aria-checked in the State and Property Mapping Tables +
UIA + Control Type: Button
+ Localized Control Type: toggleswitch
+ Control Pattern: Toggle
+ See also: aria-checked in the State and Property Mapping Tables +
ATK/AT-SPI + Role: ROLE_TOGGLE_BUTTON
+ Object Attribute: xml-roles:switch
+ See also: aria-checked in the State and Property Mapping Tables +
+ AX API[Note 1] + + AXRole: AXCheckBox
+ AXSubrole: AXSwitch
+ See also: aria-checked in the State and Property Mapping Tables +
+

tab

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + tab +
Computed Role +

tab

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_PAGETAB
+ State: STATE_SYSTEM_SELECTED if focus is inside tabpanel associated with + aria-labelledby +
UIA + Control Type: TabItem +
ATK/AT-SPI + Role: ROLE_PAGE_TAB
+ State: STATE_SELECTED if focus is inside tabpanel associated with + aria-labelledby +
+ AX API[Note 1] + + AXRole: AXRadioButton
+ AXSubrole: AXTabButton
+
+

table

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + table +
Computed Role +

table

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_TABLE
+ Object Attribute: xml-roles:table
+ Interface: IAccessibleTable2 +
UIA + Control Type: Table
+ Control Pattern: Grid
+ Control Pattern: Table +
ATK/AT-SPI + Role: ROLE_TABLE
+ Object Attribute: xml-roles:table
+ Interface: Table +
+ AX API[Note 1] + + AXRole: AXTable
+ AXSubrole: <nil>
+ AXColumnHeaderUIElements: a list of pointers to the columnheader elements
+ AXHeader: a pointer to the row or group containing those columnheader elements
+ AXRowHeaderUIElements: a list of pointers to the rowheader elements +
+

tablist

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + tablist +
Computed Role +

tablist

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_PAGETABLIST
+ Method: IAccessible::accSelect()
+ Method: IAccessible::get_accSelection() +
UIA + Control Type: Tab
+ Control Pattern: Selection +
ATK/AT-SPI + Role: ROLE_PAGE_TAB_LIST
+ Interface: Selection +

+ Because WAI-ARIA does not support modifying the selection via the accessibility API, user agents MUST return + false for all Selection methods that provide a means to modify the selection. +

+
+ AX API[Note 1] + + AXRole: AXTabGroup
+ AXSubrole: <nil>
+
+

tabpanel

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + tabpanel +
Computed Role +

tabpanel

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_PANE or ROLE_SYSTEM_PROPERTYPAGE +
UIA + Control Type: Pane +
ATK/AT-SPI + Role: ROLE_SCROLL_PANE +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXTabPanel
+
+

term

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + term +
Computed Role +

term

+
MSAA + IAccessible2 + Role: IA2_ROLE_TEXT_FRAME
+ Object Attribute: xml-roles:term +
UIA + Control Type: Text
+ Localized Control Type: term +
ATK/AT-SPI + Role: ROLE_DESCRIPTION_TERM +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXTerm
+
+

textbox when aria-multiline is false

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + textbox when aria-multiline is false +
Computed Role +

textbox

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_TEXT
+ State: IA2_STATE_SINGLE_LINE +
UIA + Control Type: Edit +
ATK/AT-SPI + Role: ROLE_ENTRY
+ State: STATE_SINGLE_LINE
+ Interface: EditableText if aria-readonly is not "true" +
+ AX API[Note 1] + + AXRole: AXTextField
+ AXSubrole: <nil>
+
+

textbox when aria-multiline is true

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + textbox when aria-multiline is true +
Computed Role +

textbox

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_TEXT
+ State: IA2_STATE_MULTI_LINE +
UIA + Control Type: Edit +
ATK/AT-SPI + Role: ROLE_ENTRY
+ State: STATE_MULTI_LINE
+ Interface: EditableText if aria-readonly is not "true" +
+ AX API[Note 1] + + AXRole: AXTextArea
+ AXSubrole: <nil>
+
+

time

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + time +
Computed Role +

time

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_GROUPING
+ Object Attribute: xml-roles:time +
UIA + Control Type: Text
+ Localized Control Type: time
+ Note: create a separate UIA Control of type Text. This is different from most UIA text mappings, which only create ranges in the page text pattern. +
ATK/AT-SPI + Role: ROLE_STATIC
+ Object Attribute: xml-roles:time +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXTimeGroup
+
+

timer

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + timer +
Computed Role +

timer

+
MSAA + IAccessible2 + Object Attribute: xml-roles:timer
+ Object Attribute: container-live:off
+ Object Attribute: live:off
+ Object Attribute: container-live-role:timer +
UIA + Control Type: Group
+ Localized Control Type: timer
+ LiveSetting: Off (0) +
ATK/AT-SPI + Role: ROLE_TIMER
+ Object Attribute: container-live:off
+ Object Attribute: live:off
+ Object Attribute: container-live-role:timer +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXApplicationTimer
+
+

toolbar

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + toolbar +
Computed Role +

toolbar

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_TOOLBAR +
UIA + Control Type: ToolBar +
ATK/AT-SPI + Role: ROLE_TOOL_BAR +
+ AX API[Note 1] + + AXRole: AXToolbar
+ AXSubrole: <nil>
+
+

tooltip

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + tooltip +
Computed Role +

tooltip

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_TOOLTIP +
UIA + Control Type: ToolTip +
ATK/AT-SPI + Role: ROLE_TOOL_TIP +
+ AX API[Note 1] + + AXRole: AXGroup
+ AXSubrole: AXUserInterfaceTooltip
+
+

tree

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + tree +
Computed Role +

tree

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_OUTLINE
+ Method: IAccessible::accSelect()
+ Method: IAccessible::get_accSelection() +
UIA + Control Type: Tree +
ATK/AT-SPI + Role: ROLE_TREE
+ Interface: Selection +

+ Because WAI-ARIA does not support modifying the selection via the accessibility API, user agents MUST return + false for all Selection methods that provide a means to modify the selection. +

+
+ AX API[Note 1] + + AXRole: AXOutline
+ AXSubrole: <nil>
+
+

treegrid

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + treegrid +
Computed Role +

treegrid

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_OUTLINE
+ Interface: IAccessibleTable2
+ Method: IAccessible::accSelect()
+ Method: IAccessible::get_accSelection() +
UIA + Control Type: DataGrid +
ATK/AT-SPI + Role: ROLE_TREE_TABLE
+ Interface: Table
+ Interface: Selection +

+ Because WAI-ARIA does not support modifying the selection via the accessibility API, user agents MUST return + false for all Selection methods that provide a means to modify the selection. +

+
+ AX API[Note 1] + + AXRole: AXTable
+ AXSubrole: <nil>
+
+

treeitem

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + treeitem +
Computed Role +

treeitem

+
MSAA + IAccessible2 + Role: ROLE_SYSTEM_OUTLINEITEM
+ See also: aria-checked in the State and Property Mapping Tables +
UIA + Control Type: TreeItem
+ See also: aria-checked in the State and Property Mapping Tables +
ATK/AT-SPI + Role: ROLE_TREE_ITEM
+ See also: aria-checked in the State and Property Mapping Tables +
+ AX API[Note 1] + + AXRole: AXRow
+ AXSubrole: AXOutlineRow
+ See also: aria-checked in the State and Property Mapping Tables +
+
+

+ [Note 1] + User agent should return a user-presentable, localized string value for the AXRoleDescription. +

+
+
+

+ [Note 2] This specification does not currently contain guidance for when user agents should fire system alert events. Some guidance may be added to the specification at a + later date but it will be a recommendation (SHOULD), not a requirement (MUST). +

+
+
+
+ +
+

State and Property Mapping

+

This section describes how to expose WAI-ARIA states and [=ARIA/properties=].

+
+

General rules

+
    +
  1. + [=User agents=] MUST compute managed states VISIBLE/INVISIBLE, SHOWING/OFFSCREEN, etc. This typically is done + in the same way as for ordinary elements that do not have WAI-ARIA attributes present. The + FOCUSABLE/FOCUSED states may be affected by aria-activedescendant. +
  2. +
  3. + User agents MUST continue to expose native semantics in addition to WAI-ARIA state and property semantics except where an + explicit WAI-ARIA override is allowed by the host language. For example, an HTML checkbox may have an + aria-labelledby attribute but the native HTML semantics must still + be exposed. +
  4. +
  5. User agents MUST expose additional states for certain roles as defined in the Role Mapping Tables.
  6. +
  7. + User agents MUST compute states for the relevant WAI-ARIA attributes and map to the + accessibility API as specified in the State and Property Mapping Tables. To determine the relevant + WAI-ARIA attributes, refer to the + Definition of Roles [[!WAI-ARIA-1.2]]]. Where the author has not provided values for required attributes, user agents SHOULD + process as if the default value was provided. +
  8. +
  9. + Some WAI-ARIA properties are not global, and are only supported on certain roles. If a non-global + WAI-ARIA state or property is used where it is not supported, user agents SHOULD NOT map the given + WAI-ARIA property to the platform accessibility API. For example, if + aria-checked="true" is specified on <div role="grid">, it should not be exposed in + MSAA implementations as STATE_SYSTEM_CHECKED. +
  10. +
  11. + When an explicit or inherited role of none or presentation is applied to an element, the user agent MUST implement the rules for the + none or the presentation role defined in + Accessible Rich Internet Applications (WAI-ARIA) 1.2 [[!WAI-ARIA-1.2]]]. +
  12. +
+
+
+

State and Property Mapping Tables

+
+

Not Mapped

+

+ There are a number of occurrences in the table where a given state or property is declared "Not mapped". In some cases, this occurs for the default value of the state/property, and is + equivalent to its absence. User agents might find it quicker to map the value than check to see if it is the default. For computational efficiency, user agents MAY expose the state or + property value if doing so is equivalent to not mapping it. These cases are marked with an asterisk. +

+

+ In other cases, it is mandatory that the state/property not be mapped, since exposing it implies a related affordance. An example is + aria-grabbed. Its absence not only indicates that the accessible object is not grabbed, but further defines it as not grab-able. These cases are marked as "Not mapped" without an asterisk. +

+
+

aria-activedescendant

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-activedescendant +
MSAA + IAccessible2See Focus Changes.
UIASee Focus Changes.
ATK/AT-SPISee Focus Changes.
AX API + See Focus Changes.
+ Property: AXSelectedRows: pointer to active descendant node +
+

aria-atomic=true

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-atomic=true +
MSAA + IAccessible2 + Object Attribute: atomic:true
+ Object Attribute: container-atomic:true
+ Object Attribute: container-atomic:true on all descendants
+ Relation: IA2_RELATION_MEMBER_OF pointing to this element (the atomic root)
+ See also: Changes to document content or node visibility +
UIA + Property: AriaProperties.atomic: true
+ See also: Changes to document content or node visibility +
ATK/AT-SPI + Object Attribute: atomic:true
+ Object Attribute: container-atomic:true
+ Object Attribute: container-atomic:true on all descendants
+ Relation: RELATION_MEMBER_OF pointing to this element (the atomic root)
+ See also: Changes to document content or node visibility +
AX API + Property: AXARIAAtomic: YES
+ See also: Changes to document content or node visibility +
+

aria-atomic=false

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-atomic=false +
MSAA + IAccessible2 + Not mapped*, but if mapped:
+ Object Attribute: atomic:false
+ Object Attribute: container-atomic:false
+ Object Attribute: container-atomic:false on all descendants
+ Relation: IA2_RELATION_MEMBER_OF pointing to this element (the atomic root)
+ See also: Changes to document content or node visibility +
UIA + Property: AriaProperties.atomic: false
+ See also: Changes to document content or node visibility +
ATK/AT-SPI + Not mapped*, but if mapped:
+ Object Attribute: atomic:false
+ Object Attribute: container-atomic:false
+ Object Attribute: container-atomic:false on all descendants
+ Relation: RELATION_MEMBER_OF pointing to this element (the atomic root)
+ See also: Changes to document content or node visibility +
AX API + Property: AXARIAAtomic: NO
+ See also: Changes to document content or node visibility +
+

aria-autocomplete=inline, list, or both

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-autocomplete=inline, list, or both +
MSAA + IAccessible2 + Object Attribute: autocomplete:<value>
+ State: IA2_STATE_SUPPORTS_AUTOCOMPLETION +
UIA + Not mapped +
ATK/AT-SPI + Object Attribute: autocomplete:<value>
+ State: STATE_SUPPORTS_AUTOCOMPLETION +
AX API + Not mapped +
+

aria-autocomplete=none

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-autocomplete=none +
MSAA + IAccessible2 + Not mapped* +
UIA + Not mapped* +
ATK/AT-SPI + Not mapped* +
AX API + Not mapped* +
+

aria-braillelabel

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-braillelabel +
MSAA + IAccessible2 + Object Attribute: braillelabel:<value> +
UIA + Property: AriaProperties.braillelabel: <value> +
ATK/AT-SPI + Object Attribute: braillelabel:<value> +
AX API + Property: AXBrailleLabel +
+

aria-brailleroledescription

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-brailleroledescription +
MSAA + IAccessible2 + Object Attribute: brailleroledescription:<value> +
UIA + Property: AriaProperties.brailleroledescription: <value> +
ATK/AT-SPI + Object Attribute: brailleroledescription:<value> +
AX API + Property: AXBrailleRoleDescription +
+

aria-brailleroledescription is undefined or the empty string

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-brailleroledescription is undefined or the empty string +
MSAA + IAccessible2 + Not mapped +
UIA + Not mapped +
ATK/AT-SPI + Not mapped +
AX API + Not mapped +
+

aria-busy=true

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-busy=true +
MSAA + IAccessible2 + State: STATE_SYSTEM_BUSY +
UIA + Property: AriaProperties.busy: true +
ATK/AT-SPI + State: STATE_BUSY +
AX API + Property: AXElementBusy: YES +
+

aria-busy=false

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-busy=false +
MSAA + IAccessible2 + State: STATE_SYSTEM_BUSY not exposed +
UIA + Property: AriaProperties.busy: false +
ATK/AT-SPI + State: STATE_BUSY not exposed +
AX API + Property: AXElementBusy: NO +
+

aria-checked=true

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-checked=true +
MSAA + IAccessible2 + State: STATE_SYSTEM_CHECKED
+ Object Attribute: checkable:true +
UIA + Property: Toggle.ToggleState: On (1)
+ Property: SelectionItem.IsSelected: True for radio and menuitemradio +
ATK/AT-SPI + State: STATE_CHECKABLE
+ State: STATE_CHECKED +
AX API + Property: AXValue: 1
+ Property: AXMenuItemMarkChar: for menuitemcheckbox and menuitemradio +
+

aria-checked=false

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-checked=false +
MSAA + IAccessible2 + State: STATE_SYSTEM_CHECKED not exposed
+ Object Attribute: checkable:true +
UIA + Property: Toggle.ToggleState: Off (0)
+ Property: SelectionItem.IsSelected: False for radio and menuitemradio +
ATK/AT-SPI + State: STATE_CHECKABLE
+ State: STATE_CHECKED not exposed +
AX API + Property: AXValue: 0
+ Property: AXMenuItemMarkChar: <nil> for menuitemcheckbox and menuitemradio +
+

aria-checked=mixed

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-checked=mixed +
MSAA + IAccessible2 + State: STATE_SYSTEM_MIXED
+ Object Attribute: checkable:true +
UIA + Property: Toggle.ToggleState: Indeterminate (2) +
ATK/AT-SPI + State: STATE_INDETERMINATE
+ State: STATE_CHECKABLE
+ State: STATE_CHECKED not exposed +
AX API + Property: AXValue: 2
+ Property: AXMenuItemMarkChar: <nil> for menuitemcheckbox and menuitemradio +
+

aria-checked is undefined

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-checked is undefined +
MSAA + IAccessible2 + Not mapped +
UIA + Not mapped +
ATK/AT-SPI + Not mapped +
AX API + Not mapped +
+

aria-colcount

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-colcount +
MSAA + IAccessible2 + Object Attribute: colcount:<value>
+ Method: IAccessible2::groupPosition(): similarItemsInGroup=<value> on cells and headers +
UIA + Property: Grid.ColumnCount: <value> +
ATK/AT-SPI + Object Attribute: colcount should contain the author-provided value.
+ Method: atk_table_get_n_columns() should return the actual number of columns. +
AX API + Property: AXARIAColumnCount: <value> +
+

aria-colindex

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-colindex +
MSAA + IAccessible2 + Object Attribute: colindex:<value>
+ Method: IAccessible2::groupPosition(): positionInGroup=<value> on cells and headers +
UIA + Property: GridItem.Column: <value> (zero-based) +
ATK/AT-SPI + Object Attribute: colindex should contain the author-provided value.
+ Method: atk_table_cell_get_position() should return the actual (zero-based) column index. +
AX API + Property: AXARIAColumnIndex: <value> +
+

aria-colindextext

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-colindextext +
MSAA + IAccessible2 + Object Attribute: colindextext:<value> +
UIA + Property: AriaProperties.colindextext: <value> +
ATK/AT-SPI + Object Attribute: colindextext:<value> +
AX API + Property: TBD +
+

aria-colspan

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-colspan +
MSAA + IAccessible2 + Object Attribute: colspan:<value>
+ Method: IAccessibleTableCell::columnExtent(): <value> +
UIA + Property: GridItem.ColumnSpan: <value> +
ATK/AT-SPI + Object Attribute: colspan should contain the author-provided value.
+ Method: atk_table_cell_get_row_column_span() should return the actual column span. +
AX API + Property: AXColumnIndexRange.length: <value> +
+

aria-controls

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-controls +
MSAA + IAccessible2 + Relation: IA2_RELATION_CONTROLLER_FOR points to accessible nodes matching IDREFs
+ Reverse Relation: IA2_RELATION_CONTROLLED_BY points to element
+ See also: Mapping Additional Relations +
UIA + Property: ControllerFor: pointers to accessible nodes matching IDREFs +
ATK/AT-SPI + Relation: RELATION_CONTROLLER_FOR points to accessible nodes matching IDREFs
+ Reverse Relation: RELATION_CONTROLLED_BY points to element
+ See also: Mapping Additional Relations +
AX API + Property: AXLinkedUIElements: pointers to accessible nodes matching IDREFs +
+

aria-current with non-false allowed value

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-current with non-false allowed value +
MSAA + IAccessible2 + Object Attribute: current:<value> +
UIA + Property: AriaProperties.current: <value> +
ATK/AT-SPI + Object Attribute: current:<value>
+ State: STATE_ACTIVE +
AX API + Property: AXARIACurrent: <value> +
+

aria-current with unrecognized value

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-current with unrecognized value +
MSAA + IAccessible2 + Object Attribute: current:true +
UIA + Property: AriaProperties.current: true +
ATK/AT-SPI + Object Attribute: current:true
+ State: STATE_ACTIVE +
AX API + Property: AXARIACurrent: true +
+

aria-current is false or undefined

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-current is false or undefined +
MSAA + IAccessible2 + Not mapped* +
UIA + Not mapped* +
ATK/AT-SPI + Not mapped* +
AX API + Not mapped* +
+

aria-describedby

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-describedby +
MSAA + IAccessible2 + Property: accDescription: <value>
+ Relation: IA2_RELATION_DESCRIBED_BY points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
+ Reverse Relation: IA2_RELATION_DESCRIPTION_FOR points to element
+ See also: Name Computation and Mapping Additional Relations +
UIA + Property: FullDescription: <value>
+ See also: Name Computation +
ATK/AT-SPI + Property: Description: <value>
+ Relation: RELATION_DESCRIBED_BY points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
+ Reverse Relation: RELATION_DESCRIPTION_FOR points to element
+ See also: Name Computation and Mapping Additional Relations +
AX API + In the accessibilityCustomContent API, expose as an AXCustomContent object with { label: "description" } and `value` set to the description + string.
+ - See also: Name Computation +
+

aria-description

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-description +
MSAA + IAccessible2 + Property: accDescription: <value>
+ See also: Name Computation +
UIA + Property: FullDescription: <value>
+ See also: Name Computation +
ATK/AT-SPI + Property: Description: <value>
+ See also: Name Computation +
AX API + In the accessibilityCustomContent API, expose as an AXCustomContent object with { label: "description" } and `value` set to the description + string.
+ See also: Name Computation +
+

aria-details

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-details +
MSAA + IAccessible2 + Relation: IA2_RELATION_DETAILS points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
+ Reverse Relation: IA2_RELATION_DETAILS_FOR points to element
+ See also: Mapping Additional Relations +
UIA + Property: DescribedBy: points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree +
ATK/AT-SPI + Relation: RELATION_DETAILS points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
+ Reverse Relation: RELATION_DETAILS_FOR points to element
+ See also: Mapping Additional Relations +
AX API + Not mapped* +
+

aria-disabled=true

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-disabled=true +
MSAA + IAccessible2 + State: STATE_SYSTEM_UNAVAILABLE
+ State: STATE_SYSTEM_UNAVAILABLE on all descendants with STATE_SYSTEM_FOCUSABLE +
UIA + Property: IsEnabled: false +
ATK/AT-SPI + State: STATE_ENABLED not exposed +
AX API + Property: AXEnabled: NO +
+

aria-disabled=false

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-disabled=false +
MSAA + IAccessible2 + State: STATE_SYSTEM_UNAVAILABLE not exposed +
UIA + Property: IsEnabled: true +
ATK/AT-SPI + State: STATE_ENABLED +
AX API + Property: AXEnabled: YES +
+

aria-dropeffect=copy, move, link, execute, or popup

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-dropeffect=copy, move, link, execute, or popup +
MSAA + IAccessible2 + Object Attribute: dropeffect:<value> +
UIA + Property: AriaProperties.dropeffect: <value> +
ATK/AT-SPI + Object Attribute: dropeffect:<value> +
AX API + array AXDropEffects +
+

aria-dropeffect=none

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-dropeffect=none +
MSAA + IAccessible2 + Object Attribute: dropeffect:none if there are no other valid tokens
+ Not mapped* if not specified by the author +
UIA + Not mapped* +
ATK/AT-SPI + Object Attribute: dropeffect:none if there are no other valid tokens
+ Not mapped* if not specified by the author +
AX API + Not mapped* +
+

aria-errormessage

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-errormessage +
MSAA + IAccessible2 + Relation: IA2_RELATION_ERROR points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
+ Reverse Relation: IA2_RELATION_ERROR_FOR points to element
+ See also: Mapping Additional Relations +
UIA + Property: ControllerFor: pointer to the target accessible object +
ATK/AT-SPI + Relation: RELATION_ERROR_MESSAGE points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
+ Reverse Relation: RELATION_ERROR_FOR points to element
+ See also: Mapping Additional Relations +
AX API + Property: AXErrorMessageElements: pointers to accessible nodes matching IDREFs +
+

aria-expanded=true

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-expanded=true +
MSAA + IAccessible2 + State: STATE_SYSTEM_EXPANDED +
UIA + Property: ExpandCollapse.ExpandCollapseState: Expanded +
ATK/AT-SPI + State: STATE_EXPANDABLE
+ State: STATE_EXPANDED +
AX API + Property: AXExpanded: YES +
+

aria-expanded=false

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-expanded=false +
MSAA + IAccessible2 + State: STATE_SYSTEM_COLLAPSED +
UIA + Property: ExpandCollapse.ExpandCollapseState: Collapsed +
ATK/AT-SPI + State: STATE_EXPANDABLE
+ State: STATE_EXPANDED not exposed +
AX API + Property: AXExpanded: NO +
+

aria-expanded is undefined

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-expanded is undefined +
MSAA + IAccessible2 + Not mapped +
UIA + Not mapped +
ATK/AT-SPI + Not mapped +
AX API + Not mapped +
+

aria-flowto

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-flowto +
MSAA + IAccessible2 + Relation: IA2_RELATION_FLOW_TO points to accessible nodes matching IDREFs
+ Reverse Relation: IA2_RELATION_FLOW_FROM points to element
+ See also: Mapping Additional Relations +
UIA + Property: FlowsTo: pointers to accessible nodes matching IDREFs +
ATK/AT-SPI + Relation: RELATION_FLOWS_TO points to accessible nodes matching IDREFs
+ Reverse Relation: RELATION_FLOWS_FROM points to element
+ See also: Mapping Additional Relations +
AX API + Property: AXLinkedUIElements: pointers to accessible nodes matching IDREFs +
+

aria-grabbed=true

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-grabbed=true +
MSAA + IAccessible2 + Object Attribute: grabbed:true +
UIA + Property: AriaProperties.grabbed: true +
ATK/AT-SPI + Object Attribute: grabbed:true +
AX API + Property: AXGrabbed: YES +
+

aria-grabbed=false

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-grabbed=false +
MSAA + IAccessible2 + Object Attribute: grabbed:false +
UIA + Property: AriaProperties.grabbed: false +
ATK/AT-SPI + Object Attribute: grabbed:false +
AX API + Property: AXGrabbed: NO +
+

aria-grabbed is undefined

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-grabbed is undefined +
MSAA + IAccessible2 + Not mapped +
UIA + Not mapped +
ATK/AT-SPI + Not mapped +
AX API + Not mapped +
+

aria-haspopup=true

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-haspopup=true +
MSAA + IAccessible2 + State: STATE_SYSTEM_HASPOPUP
+ Object Attribute: haspopup:menu +
UIA + Control Pattern: ExpandCollapse + See also: aria-expanded +
ATK/AT-SPI + State: STATE_HAS_POPUP
+ Object Attribute: haspopup:menu +
AX API + Property: AXPopupValue:menu
+ Action: AXShowMenu +
+

aria-haspopup=false

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-haspopup=false +
MSAA + IAccessible2 + State: STATE_SYSTEM_HASPOPUP not exposed
+ Object Attribute: haspopup:false +
UIA + Not mapped* +
ATK/AT-SPI + Not mapped* +
AX API + Not mapped* +
+

aria-haspopup=dialog

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-haspopup=dialog +
MSAA + IAccessible2 + State: STATE_SYSTEM_HASPOPUP
+ Object Attribute: haspopup:dialog +
UIA + Control Pattern: ExpandCollapse
+ See also: aria-expanded +
ATK/AT-SPI + State: STATE_HAS_POPUP
+ Object Attribute: haspopup:dialog +
AX API + Property: AXPopupValue:dialog
+ Action: AXShowMenu +
+

aria-haspopup=grid

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-haspopup=grid +
MSAA + IAccessible2 + State: STATE_SYSTEM_HASPOPUP
+ Object Attribute: haspopup:grid +
UIA + Control Pattern: ExpandCollapse
+ See also: aria-expanded +
ATK/AT-SPI + State: STATE_HAS_POPUP
+ Object Attribute: haspopup:grid +
AX API + Property: AXPopupValue:grid
+ Action: AXShowMenu +
+

aria-haspopup=listbox

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-haspopup=listbox +
MSAA + IAccessible2 + State: STATE_SYSTEM_HASPOPUP
+ Object Attribute: haspopup:listbox +
UIA + Control Pattern: ExpandCollapse
+ See also: aria-expanded +
ATK/AT-SPI + State: STATE_HAS_POPUP
+ Object Attribute: haspopup:listbox +
AX API + Property: AXPopupValue:listbox
+ Action: AXShowMenu +
+

aria-haspopup=menu

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-haspopup=menu +
MSAA + IAccessible2 + State: STATE_SYSTEM_HASPOPUP
+ Object Attribute: haspopup:menu +
UIA + Control Pattern: ExpandCollapse
+ See also: aria-expanded +
ATK/AT-SPI + State: STATE_HAS_POPUP
+ Object Attribute: haspopup:menu +
AX API + Property: AXPopupValue:menu
+ Action: AXShowMenu +
+

aria-haspopup=tree

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-haspopup=tree +
MSAA + IAccessible2 + State: STATE_SYSTEM_HASPOPUP
+ Object Attribute: haspopup:tree +
UIA + Control Pattern: ExpandCollapse
+ See also: aria-expanded +
ATK/AT-SPI + State: STATE_HAS_POPUP
+ Object Attribute: haspopup:tree +
AX API + Property: AXPopupValue:tree
+ Action: AXShowMenu +
+

aria-hidden=true on unfocused element

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-hidden=true on unfocused element +
MSAA + IAccessible2 + Element SHOULD NOT be exposed
+ See also: Including Elements in the Accessibility Tree in the WAI-ARIA specification +
UIA + Element SHOULD NOT be exposed
+ See also: Including Elements in the Accessibility Tree in the WAI-ARIA specification +
ATK/AT-SPI + Element SHOULD NOT be exposed
+ See also: Including Elements in the Accessibility Tree in the WAI-ARIA specification +
AX API + Element SHOULD NOT be exposed
+ See also: Including Elements in the Accessibility Tree in the WAI-ARIA specification +
+

aria-hidden=true when element is focused or fires an accessibility event

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-hidden=true when element is focused or fires an accessibility event +
MSAA + IAccessible2 + Object Attribute: hidden:true
+ See also: Including Elements in the Accessibility Tree in the WAI-ARIA specification +
UIA + Property: AriaProperties.hidden: true
+ See also: Including Elements in the Accessibility Tree in the WAI-ARIA specification +
ATK/AT-SPI + Object Attribute: hidden:true
+ See also: Including Elements in the Accessibility Tree in the WAI-ARIA specification +
AX API + Not mapped
+ See also: Including Elements in the Accessibility Tree in the WAI-ARIA specification +
+

aria-hidden=false

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-hidden=false +
MSAA + IAccessible2 + Not mapped +
UIA + Not mapped +
ATK/AT-SPI + Not mapped +
AX API + Not mapped +
+

aria-invalid=true

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-invalid=true +
MSAA + IAccessible2 + State: IA2_STATE_INVALID_ENTRY
+ Text Attribute: invalid:true +
UIA + Property: IsDataValidForForm: false +
ATK/AT-SPI + State: STATE_INVALID_ENTRY
+ Text Attribute: invalid:true +
AX API + Property: AXInvalid: true +
+

aria-invalid=false

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-invalid=false +
MSAA + IAccessible2 + State: IA2_STATE_INVALID_ENTRY not exposed +
UIA + Property: IsDataValidForForm: true +
ATK/AT-SPI + State: STATE_INVALID_ENTRY not exposed +
AX API + Property: AXInvalid: false +
+

aria-invalid=spelling or grammar

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-invalid=spelling or grammar +
MSAA + IAccessible2 + State: IA2_STATE_INVALID_ENTRY
+ Text Attribute: invalid:<value> +
UIA + Property: IsDataValidForForm: <value> +
ATK/AT-SPI + State: STATE_INVALID_ENTRY
+ Text Attribute: invalid:<value> +
AX API + Property: AXInvalid: <value> +
+

aria-invalid with unrecognized value

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-invalid with unrecognized value +
MSAA + IAccessible2 + State: IA2_STATE_INVALID_ENTRY
+ Text Attribute: invalid:true +
UIA + Property: IsDataValidForForm: false +
ATK/AT-SPI + State: STATE_INVALID_ENTRY
+ Text Attribute: invalid:true +
AX API + Property: AXInvalid: true +
+

aria-keyshortcuts

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-keyshortcuts +
MSAA + IAccessible2 + Property: accKeyboardShortcut: <value> +
UIA + Property: AcceleratorKey: <value> +
ATK/AT-SPI + Object Attribute: keyshortcuts:<value> +
AX API + Property: AXKeyShortcutsValue: <value> +
+

aria-label

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-label +
MSAA + IAccessible2 + Property: accName: <value>
+ See also: Name Computation +
UIA + Property: Name: <value>
+ See also: Name Computation +
ATK/AT-SPI + Property: Name: <value>
+ See also: Name Computation +
AX API + Property: AXDescription: <value>
+ See also: Name Computation +
+

aria-labelledby

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-labelledby +
MSAA + IAccessible2 + Property: accName: <value>
+ Relation: IA2_RELATION_LABELLED_BY points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
+ Reverse Relation: IA2_RELATION_LABEL_FOR points to element
+ See also: Name Computation and Mapping Additional Relations +
UIA + Property: Name: <value>
+ Property: LabeledBy: points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
+ See also: Name Computation +
ATK/AT-SPI + Property: Name: <value>
+ Relation: RELATION_LABELLED_BY points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
+ Reverse Relation: RELATION_LABEL_FOR points to element
+ See also: Name Computation and Mapping Additional Relations +
AX API + Property: AXDescription: <value> if the value is not exposed visually
+ Property: AXTitle: <value> if the value is exposed visually
+ Property: AXTitleUIElement points to accessible node matching IDREF, if there is a single referenced element that is in the accessibility tree
+ See also: Name Computation +
+

aria-level on non-heading

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-level on non-heading +
MSAA + IAccessible2 + Object Attribute: level:<value>
+ Method: IAccessible2::groupPosition(): groupLevel=<value> on roles that support aria-posinset and aria-setsize
+ See also: groupPosition() +
UIA + Property: AriaProperties.level: <value> +
ATK/AT-SPI + Object Attribute: level:<value> +
AX API + Property: AXDisclosureLevel: <value> (zero-based), when used on an outline row (like a + treeitem or group) +
+

aria-level on heading

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-level on heading +
MSAA + IAccessible2 + Object Attribute: level:<value> +
UIA + Property: AriaProperties.level: <value>
+ Property: StyleId_Heading: <value> +
ATK/AT-SPI + Object Attribute: level:<value> +
AX API + Property: AXValue: <value> +
+

aria-live=assertive

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-live=assertive +
MSAA + IAccessible2 + Object Attribute: live:assertive
+ Object Attribute: container-live:assertive
+ Object Attribute: container-live:assertive on all descendants
+ See also: Changes to document content or node visibility +
UIA + Property: LiveSetting: "assertive"
+ See also: Changes to document content or node visibility +
ATK/AT-SPI + Object Attribute: live:assertive
+ Object Attribute: container-live:assertive
+ Object Attribute: container-live:assertive on all descendants
+ See also: Changes to document content or node visibility +
AX API + Property: AXARIALive: "assertive"
+ See also: Changes to document content or node visibility +
+

aria-live=polite

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-live=polite +
MSAA + IAccessible2 + Object Attribute: live:polite
+ Object Attribute: container-live:polite
+ Object Attribute: container-live:polite on all descendants
+ See also: Changes to document content or node visibility +
UIA + Property: LiveSetting: "polite"
+ See also: Changes to document content or node visibility +
ATK/AT-SPI + Object Attribute: live:polite
+ Object Attribute: container-live:polite
+ Object Attribute: container-live:polite on all descendants
+ See also: Changes to document content or node visibility +
AX API + Property: AXARIALive: "polite"
+ See also: Changes to document content or node visibility +
+

aria-live=off

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-live=off +
MSAA + IAccessible2 + Object Attribute: live:off
+ Object Attribute: container-live:off
+ Object Attribute: container-live:off on all descendants +
UIA + Property: LiveSetting: "off" +
ATK/AT-SPI + Object Attribute: live:off
+ Object Attribute: container-live:off
+ Object Attribute: container-live:off on all descendants
+
AX API + Property: AXARIALive: "off" +
+

aria-modal=true

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-modal=true +
MSAA + IAccessible2 + State: IA2_STATE_MODAL +
UIA + Property: Window.IsModal: true
+
ATK/AT-SPI + State: STATE_MODAL +
AX API + Prune the accessibility tree such that the background content is no longer exposed. No specific property is set on the accessible object that corresponds to + the element with aria-modal="true". Only the tree whose root is that modal accessible object is exposed. +
+

aria-modal=false

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-modal=false +
MSAA + IAccessible2 + State: IA2_STATE_MODAL not exposed +
UIA + Property: Window.IsModal: false
+
ATK/AT-SPI + State: STATE_MODAL not exposed +
AX API + Grow the accessibility tree such that the background content is exposed. No specific property is set on the accessible object that corresponds to the + element with aria-modal="false". +
+

aria-multiline=true

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-multiline=true +
MSAA + IAccessible2 + State: IA2_STATE_MULTI_LINE
+ State: IA2_STATE_SINGLE_LINE not exposed +
UIA + Property: AriaProperties.multiline: true +
ATK/AT-SPI + State: STATE_MULTI_LINE
+ State: STATE_SINGLE_LINE not exposed +
AX API + Not mapped
+ See also: textbox in the Role Mapping Tables +
+

aria-multiline=false

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-multiline=false +
MSAA + IAccessible2 + State: IA2_STATE_SINGLE_LINE
+ State: IA2_STATE_MULTI_LINE not exposed +
UIA + Not mapped +
ATK/AT-SPI + State: STATE_SINGLE_LINE
+ State: STATE_MULTI_LINE not exposed +
AX API + Not mapped
+ See also: textbox in the Role Mapping Tables +
+

aria-multiselectable=true

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-multiselectable=true +
MSAA + IAccessible2 + State: STATE_SYSTEM_MULTISELECTABLE
+ State: STATE_SYSTEM_EXTSELECTABLE
+ See also: Selection for details on accessibility events +
UIA + Property: Selection.CanSelectMultiple: true
+ See also: Selection for details on accessibility events +
ATK/AT-SPI + State: STATE_MULTISELECTABLE
+ See also: Selection for details on accessibility events +
AX API + Not mapped
+ See also: Selection for details on accessibility events +
+

aria-multiselectable=false

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-multiselectable=false +
MSAA + IAccessible2 + State: STATE_SYSTEM_MULTISELECTABLE not exposed
+ State: STATE_SYSTEM_EXTSELECTABLE not exposed
+ See also: Selection for details on accessibility events +
UIA + Not mapped* +
ATK/AT-SPI + State: STATE_MULTISELECTABLE not exposed +
AX API + Not mapped* +
+

aria-orientation=horizontal

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-orientation=horizontal +
MSAA + IAccessible2 + State: IA2_STATE_HORIZONTAL
+ State: IA2_STATE_VERTICAL not exposed +
UIA + Property: Orientation: horizontal +
ATK/AT-SPI + State: STATE_HORIZONTAL
+ State: STATE_VERTICAL not exposed +
AX API + Property: AXOrientation: AXHorizontalOrientation +
+

aria-orientation=vertical

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-orientation=vertical +
MSAA + IAccessible2 + State: IA2_STATE_VERTICAL
+ State: IA2_STATE_HORIZONTAL not exposed +
UIA + Property: Orientation: vertical +
ATK/AT-SPI + State: STATE_VERTICAL
+ State: STATE_HORIZONTAL not exposed +
AX API + Property: AXOrientation: AXVerticalOrientation +
+

aria-orientation is undefined

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-orientation is undefined +
MSAA + IAccessible2 + Not mapped* +
UIA + Not mapped* +
ATK/AT-SPI + State: STATE_VERTICAL not exposed
+ State: STATE_HORIZONTAL not exposed +
AX API + Property: AXOrientation: AXUnknownOrientation +
+

aria-owns

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-owns +
MSAA + IAccessible2 +

+ User agents MAY expose the elements that are referenced by this property as children of the current element. In which case, if multiple + aria-owns relationships are found, use only the first one. If the accessibility tree is not modified, expose as: +

+ Relation: IA2_RELATION_NODE_PARENT_OF points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
+ Reverse Relation: IA2_RELATION_NODE_CHILD_OF points to element
+ See also: Mapping Additional Relations +
UIA + Expose the elements that are referenced by this property as children of the current element. If multiple + aria-owns relationships are found, use only the first one. +
ATK/AT-SPI +

+ User agents MAY expose the elements that are referenced by this property as children of the current element. In which case, if multiple + aria-owns relationships are found, use only the first one. If the accessibility tree is not modified, expose as: +

+ Relation: RELATION_NODE_PARENT_OF points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
+ Reverse Relation: RELATION_NODE_CHILD_OF points to element
+ See also: Mapping Additional Relations +
AX API + Property: AXOwns: pointers to accessible nodes matching IDREFs +
+

aria-placeholder

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-placeholder +
MSAA + IAccessible2 + Object Attribute: placeholder-text:<value> +
UIA + Property: HelpText: <value> +
ATK/AT-SPI + Object Attribute: placeholder-text:<value> +
AX API + Property: AXPlaceholderValue: <value> +
+

aria-posinset

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-posinset +
MSAA + IAccessible2 + Object Attribute: posinset:<value>
+ See also: Group Position +
UIA + Property: AriaProperties.posinset: <value>
+ See also: Group Position +
ATK/AT-SPI + Object Attribute: posinset:<value>
+ See also: Group Position +
AX API + Property: AXARIAPosInSet: <value>
+ See also: Group Position +
+

aria-pressed=true

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-pressed=true +
MSAA + IAccessible2 + State: STATE_SYSTEM_PRESSED
+ See also: button with defined value for aria-pressed +
UIA + Property: Toggle.ToggleState: On (1) +
ATK/AT-SPI + State: STATE_PRESSED
+ See also: button with defined value for aria-pressed +
AX API + Property: AXValue: 1
+ See also: button with defined value for aria-pressed +
+

aria-pressed=mixed

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-pressed=mixed +
MSAA + IAccessible2 + State: STATE_SYSTEM_MIXED
+ See also: button with defined value for aria-pressed +
UIA + Property: Toggle.ToggleState: Indeterminate (2) +
ATK/AT-SPI + State: STATE_INDETERMINATE
+ See also: button with defined value for aria-pressed +
AX API + Property: AXValue: 2
+ See also: button with defined value for aria-pressed +
+

aria-pressed=false

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-pressed=false +
MSAA + IAccessible2 + State: STATE_SYSTEM_PRESSED not exposed
+ See also: button with defined value for aria-pressed +
UIA + Property: Toggle.ToggleState: Off (3) +
ATK/AT-SPI + State: STATE_PRESSED not exposed
+ See also: button with defined value for aria-pressed +
AX API + Property: AXValue: 0
+ See also: button with defined value for aria-pressed +
+

aria-pressed is undefined

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-pressed is undefined +
MSAA + IAccessible2 + Not mapped* +
UIA + Not mapped* +
ATK/AT-SPI + Not mapped* +
AX API + Not mapped* +
+

aria-readonly=true

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-readonly=true +
MSAA + IAccessible2 + State: STATE_SYSTEM_READONLY +
UIA + Property: Value.IsReadOnly: true, if the element implements + IValueProvider.
+ Property: RangeValue.IsReadOnly: true, if the element implements + IRangeValueProvider.
+ Property: AriaProperties.readonly: true +
ATK/AT-SPI + State: STATE_READ_ONLY
+ State: STATE_EDITABLE not exposed on text input roles
+ State: STATE_CHECKABLE not exposed on roles supporting aria-checked
+ State: STATE_CHECKABLE not exposed on radio descendants when used on a radiogroup +
AX API + Method: AXUIElementIsAttributeSettable(AXValue): NO +
+

aria-readonly=false

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-readonly=false +
MSAA + IAccessible2 + State: STATE_SYSTEM_READONLY not exposed
+ State: IA2_STATE_EDITABLE +
UIA + Property: Value.IsReadOnly: false, if the element implements + IValueProvider.
+ Property: RangeValue.IsReadOnly: false, if the element implements + IRangeValueProvider.
+ Property: AriaProperties.readonly: false +
ATK/AT-SPI + State: STATE_READ_ONLY not exposed +
AX API + Method: AXUIElementIsAttributeSettable(AXValue): YES +
+

aria-readonly is unspecified on gridcell

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-readonly is unspecified on gridcell +
MSAA + IAccessible2 + The gridcell MUST inherit any author-provided value for aria-readonly from the containing grid or treegrid. Expose the inherited + value on the gridcell as described for aria-readonly="true" and + aria-readonly="false". +
UIA + The gridcell MUST inherit any author-provided value for aria-readonly from the containing grid or treegrid. Expose the inherited + value on the gridcell as described for aria-readonly="true" and + aria-readonly="false". +
ATK/AT-SPI + The gridcell MUST inherit any author-provided value for aria-readonly from the containing grid or treegrid. Expose the inherited + value on the gridcell as described for aria-readonly="true" and + aria-readonly="false". +
AX API + The gridcell MUST inherit any author-provided value for aria-readonly from the containing grid or treegrid. Expose the inherited + value on the gridcell as described for aria-readonly="true" and + aria-readonly="false". +
+

aria-relevant

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-relevant +
MSAA + IAccessible2 + Object Attribute: relevant:<value>
+ Object Attribute: container-relevant:<value>
+ Object Attribute: container-relevant:<value> on all descendants
+ See also: Changes to document content or node visibility +
UIA + Property: AriaProperties.relevant: <value>
+ See also: Changes to document content or node visibility +
ATK/AT-SPI + Object Attribute: relevant:<value>
+ Object Attribute: container-relevant:<value>
+ Object Attribute: container-relevant:<value> on all descendants
+ See also: Changes to document content or node visibility +
AX API + Property: AXARIARelevant: <value>
+ See also: Changes to document content or node visibility +
+

aria-required=true

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-required=true +
MSAA + IAccessible2 + State: IA2_STATE_REQUIRED +
UIA + Property: IsRequiredForForm: true +
ATK/AT-SPI + State: STATE_REQUIRED +
AX API + Property: AXRequired: YES +
+

aria-required=false

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-required=false +
MSAA + IAccessible2 + Not mapped* +
UIA + Not mapped* +
ATK/AT-SPI + Not mapped* +
AX API + Not mapped* +
+

aria-roledescription

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-roledescription +
MSAA + IAccessible2 + Method: localizedExtendedRole(): <value> +
UIA + Localized Control Type: <value> +
ATK/AT-SPI + Object Attribute: roledescription:<value> +
AX API + Property: AXRoleDescription: <value> +
+

aria-roledescription is undefined or the empty string

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-roledescription is undefined or the empty string +
MSAA + IAccessible2 + Not mapped +
UIA + Localized Control Type is defined as that specified for the role of the element: based on the explicit role if the role attribute is provided; otherwise, based on the implicit + role for the host language. +
ATK/AT-SPI + Not mapped +
AX API + AXRoleDescription is defined as that specified for the role of the element: based on the explicit role if the role attribute is provided; otherwise, based on the implicit role for + the host language. +
+

aria-rowcount

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-rowcount +
MSAA + IAccessible2 + Object Attribute: rowcount:<value>
+ Method: IAccessible2::groupPosition(): similarItemsInGroup=<value> on rows +
UIA + Property: Grid.RowCount: <value> +
ATK/AT-SPI + Object Attribute: rowcount should contain the author-provided value.
+ Method: atk_table_get_n_rows() should return the actual number of rows. +
AX API + Property: AXARIARowCount: <value> +
+

aria-rowindex

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-rowindex +
MSAA + IAccessible2 + Object Attribute: rowindex:<value>
+ Method: IAccessible2::groupPosition(): positionInGroup=<value> on rows +
UIA + Property: GridItem.Row: <value> (zero-based) +
ATK/AT-SPI + Object Attribute: rowindex should contain the author-provided value.
+ Method: atk_table_cell_get_position() should return the actual (zero-based) row index. +
AX API + Property: AXARIARowIndex: <value> +
+

aria-rowindextext

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-rowindextext +
MSAA + IAccessible2 + Object Attribute: rowindextext:<value> +
UIA + Property: AriaProperties.rowindextext: <value> +
ATK/AT-SPI + Object Attribute: rowindextext:<value> +
AX API + Property: TBD +
+

aria-rowspan

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-rowspan +
MSAA + IAccessible2 + Object Attribute: rowspan:<value>
+ Method: IAccessibleTableCell::rowExtent(): column=<value> +
UIA + Property: GridItem.RowSpan: <value> +
ATK/AT-SPI + Object Attribute: rowspan should contain the author-provided value.
+ Method: atk_table_cell_get_row_column_span() should return the actual row span. +
AX API + Property: AXRowIndexRange.length: <value> +
+

aria-selected=true

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-selected=true +
MSAA + IAccessible2 + State: STATE_SYSTEM_SELECTABLE
+ State: STATE_SYSTEM_SELECTED
+ See also: Selection for details on accessibility events +
UIA + Property: SelectionItem.IsSelected: true +
ATK/AT-SPI + State: STATE_SELECTABLE
+ State: STATE_SELECTED
+ See also: Selection for details on accessibility events +
AX API + Property: AXSelected: YES +
+

aria-selected=false

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-selected=false +
MSAA + IAccessible2 + State: STATE_SYSTEM_SELECTABLE
+ State: STATE_SYSTEM_SELECTED not exposed
+ See also: Selection for details on accessibility events +
UIA + Property: SelectionItem.IsSelected: false +
ATK/AT-SPI + State: STATE_SELECTABLE
+ State: STATE_SELECTED not exposed
+ See also: Selection for details on accessibility events +
AX API + Property: AXSelected: NO +
+

aria-selected is undefined

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-selected is undefined +
MSAA + IAccessible2 + Not mapped +
UIA + Not mapped +
ATK/AT-SPI + Not mapped +
AX API + Not mapped +
+

aria-setsize

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-setsize +
MSAA + IAccessible2 + Object Attribute: setsize:<value>
+ See also: Group Position +
UIA + Property: AriaProperties.setsize: <value>
+ See also: Group Position +
ATK/AT-SPI +

+ If the author-provided value of aria-setsize is -1, the exposed value should be based on the number of objects in the + DOM. +

+ Object Attribute: setsize:<value>
+ State: STATE_INDETERMINATE if the author-provided value is -1
+ See also: Group Position +
AX API + Property: AXARIASetSize: <value>
+ See also: Group Position +
+

aria-sort=ascending

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-sort=ascending +
MSAA + IAccessible2 + Object Attribute: sort:ascending +
UIA + Property: AriaProperties.sort: ascending
+ Property: ItemStatus: ascending if the element maps to + HeaderItem Control Type +
ATK/AT-SPI + Object Attribute: sort:ascending +
AX API + Property: AXSortDirection: AXAscendingSortDirection +
+

aria-sort=descending

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-sort=descending +
MSAA + IAccessible2 + Object Attribute: sort:descending +
UIA + Property: AriaProperties.sort: descending
+ Property: ItemStatus: descending if the element maps to + HeaderItem Control Type +
ATK/AT-SPI + Object Attribute: sort:descending +
AX API + Property: AXSortDirection: AXDescendingSortDirection +
+

aria-sort=other

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-sort=other +
MSAA + IAccessible2 + Object Attribute: sort:other +
UIA + Property: AriaProperties.sort: other
+ Property: ItemStatus: other if the element maps to + HeaderItem Control Type +
ATK/AT-SPI + Object Attribute: sort:other +
AX API + Property: AXSortDirection: AXUnknownSortDirection +
+

aria-sort=none

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-sort=none +
MSAA + IAccessible2 + Object Attribute: sort:none, if the value is not unspecified +
UIA + Not mapped* +
ATK/AT-SPI + Object Attribute: sort:none, if the value is not unspecified +
AX API + Not mapped* +
+

aria-valuemax

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-valuemax +
MSAA + IAccessible2 + Method: IAccessibleValue::maximumValue(): <value>
+ See also: Handling Author Errors for States and Properties +
UIA + Property: RangeValue.Maximum: <value>
+ See also: Handling Author Errors for States and Properties +
ATK/AT-SPI + Method: atk_value_get_maximum_value(): <value>
+ See also: Handling Author Errors for States and Properties +
AX API + Property: AXMaxValue: <value>
+ See also: Handling Author Errors for States and Properties +
+

aria-valuemin

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-valuemin +
MSAA + IAccessible2 + Method: IAccessibleValue::minimumValue(): <value>
+ See also: Handling Author Errors for States and Properties +
UIA + Property: RangeValue.Minimum: <value>
+ See also: Handling Author Errors for States and Properties +
ATK/AT-SPI + Method: atk_value_get_minimum_value(): <value>
+ See also: Handling Author Errors for States and Properties +
AX API + Property: AXMinValue: <value>
+ See also: Handling Author Errors for States and Properties +
+

aria-valuenow

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-valuenow +
MSAA + IAccessible2 + Method: IAccessibleValue::currentValue(): <value>
+ Method: IAccessible::get_accValue(): <value> if aria-valuetext is not defined
+ See also: Handling Author Errors for States and Properties +
UIA + Property: RangeValue.Value: <value>
+ See also: Handling Author Errors for States and Properties +
ATK/AT-SPI + Method: atk_value_get_current_value(): <value>
+ See also: Handling Author Errors for States and Properties +
AX API + Property: AXValue: <value>
+ See also: Handling Author Errors for States and Properties +
+

aria-valuetext

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-valuetext +
MSAA + IAccessible2 + Method: IAccessible::get_accValue(): <value>
+ Object Attribute: valuetext:<value>
+ See also: Handling Author Errors for States and Properties +
UIA + Property: Value.Value: <value>
+ See also: Handling Author Errors for States and Properties +
ATK/AT-SPI + Object Attribute: valuetext:<value>
+ See also: Handling Author Errors for States and Properties +
AX API + Property: AXValueDescription: <value>
+ See also: Handling Author Errors for States and Properties +
+
+
+
+

Special Processing Requiring Additional Computation

+
+

Name and Description

+

+ For information on how to compute an accessible name or + accessible description, see the section titled + Accessible Name and Description Computation of the + Accessible Name and Description Computation specification. +

+
+
+

Relations

+

+ Often in a GUI, there are relationships between the widgets that can be exposed programmatically + to assistive technology. WAI-ARIA provides several relationship [=ARIA/properties=] which are globally + applicable to any element: aria-controls, aria-describedby, aria-flowto, aria-labelledby, aria-owns, aria-posinset, and aria-setsize. Therefore, it is not important to check the role before computing them. [=User agents=] can simply map these relations to + accessibility APIs as defined in the section titled State and Property Mapping. +

+
+

Reverse Relations

+

+ A reverse relation exists when an element's ID is referenced by a [=ARIA/property=] in another element. For + APIs that support reverse relations, [=user agents=] MUST use the mapping defined in the + State and Property Mapping Tables when an element's ID is referenced by a relation property of another element and the referenced element is + in the accessibility tree. All WAI-ARIA references must point to an element that is exposed as an accessible object in the accessibility tree. When the referenced object is not exposed + in the accessibility tree (e.g. because it is [=element/hidden=]), the reference is null. aria-labelledby and aria-describedby have an additional feature, which + allows them to pull a flattened string from the referenced element to populate the name or description fields of the accessibility API. This feature is described in the + Name and Description section. +

+

+ Special case: If both aria-labelledby and HTML + <label for= … > are used, the user agent MUST use the WAI-ARIA relation and MUST ignore the + HTML label relation. +

+

+ Note that aria-describedby may reference structured or interactive information where users would want to be able + to navigate to different sections of content. User agents MAY provide a way for the user to navigate to structured information referenced by + aria-describedby and assistive technology SHOULD provide such a method. +

+
+
+

Implied reverse relations

+

+ In addition to the explicit relations defined by WAI-ARIA [=ARIA/properties=], reverse relations are implied in two other + situations: elements with role="treeitem" where the ancestor does not have an + aria-owns property and descendants of elements with + aria-atomic property. +

+

+ In the case of role="treeitem", when aria-owns is + not used, [=user agents=] SHOULD do the following where reverse relations are supported by the API: +

+
    +
  • + If the current treeitem uses aria-level, then walk backwards in the tree until a treeitem is found with a lower + aria-level, then set RELATION_NODE_CHILD_OF to that element. If the top of the tree is reached, then set RELATION_NODE_CHILD_OF to the tree element itself. +
  • +
  • + If the parent of the treeitem has a role of + group, then walk backwards from the group until an element with a role of + treeitem is found, then set RELATION_NODE_CHILD_OF to that element. +
  • +
+

+ In the case of aria-atomic, where reverse relations are supported by the API: +

+
    +
  • + User agents SHOULD check the chain of ancestor elements for aria-atomic="true". If found, user agents SHOULD set the RELATION_MEMBER_OF relation to point to the ancestor that sets + aria-atomic="true". +
  • +
+
+
+
+

Group Position

+

+ aria-level, aria-posinset, and aria-setsize are all 1-based. When the [=ARIA/property=] is not present or is "0", it indicates the + property is not computed or not supported. If any of these properties are specified by the author as either "0" or a negative number, [=user agents=] SHOULD use "1" + instead. +

+

+ If aria-level is not provided or inherited for an element of role + treeitem or comment, user agents implementing IAccessible2 or ATK/AT-SPI MUST compute it by + following the explicit or computed RELATION_NODE_CHILD_OF relations. +

+

+ If aria-posinset and aria-setsize are not provided, + user agents MUST compute them as follows: +

+
    +
  • + for role="treeitem" and role="comment", walk + the tree backward and forward until the explicit or computed level becomes less than the current item's level. Count items only if they are at the same level as the current item. +
  • +
  • + Otherwise, if the role supports aria-posinset and + aria-setsize, process the parent (DOM parent or parent defined by aria-owns), counting items that have the same role. +
  • +
  • + Because these value are 1-based, include the current item in the computation. For aria-posinset, include the current item and other group items if they are before the current item in the DOM. For aria-setsize, add to that the number of items in the same group after the current item in the DOM. +
  • +
+

+ If the author provides one or more of aria-setsize and aria-posinset, it is the author's responsibility to supply them for all elements in the set. [=User agent=] + correction of missing values in this case is not defined. +

+

+ MSAA/IAccessible2 API mappings involve an additional function, groupPosition() [[IAccessible2]], when + aria-level, aria-posinset, and/or aria-setsize are present on an element, or are computed by the user agent. When this occurs: +

+
    +
  • + aria-level is exposed in the groupLevel parameter of groupPosition(), +
  • +
  • + aria-setsize is exposed in the similarItemsInGroup parameter, and +
  • +
  • + aria-posinset is exposed in the positionInGroup parameter. +
  • +
+
+
+
+

Actions

+

As part of mapping roles to accessible objects as defined in Role Mapping, users agents expose a default action on the object.

+ +

+ Authors will need to create handlers for those click events that update WAI-ARIA states and properties in the + DOM accordingly, so that those updated states can be populated by the user agent in the Accessibility + API. +

+
+
+

Events

+

+ [=User agents=] fire events for user actions, WAI-ARIA state changes, changes to + document content or node visibility, changes in selection and operation of menus as defined in the following sections. +

+
+

State and Property Change Events

+

+ [=User agents=] MUST notify assistive technology of state changes as defined in the table below, SHOULD notify assistive technology of + [=ARIA/property=] changes if the accessibility API defines a change event for the property, and SHOULD NOT notify assistive technology of + property changes if the accessibility API does not define a change event for the property. For example, IAccessible2 defines an event + to be used when aria-activedescendant changes. + WAI-ARIA properties that are expected to change include + aria-activedescendant, aria-valuenow, and aria-valuetext. +

+

In some APIs, AT will only be notified of events to which it has subscribed.

+

+ For simplicity and performance the user agent MAY trim out change events for state or property changes that assistive technologies typically ignore, such as events + that are happening in a window that does not currently have focus. +

+

+ Translators: For label text associated with the following table and its toggle buttons, see the mappingTableLabels object in the <head> section of this + document. +

+

aria-activedescendant

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-activedescendant +
MSAA + IAccessible2 event + See Focus Changes. +

In addition:

+

IA2_EVENT_ACTIVE_DESCENDANT_CHANGED

+
UIA event + See Focus Changes. +

In addition:

+

PropertyChangedEvent

+

Property: AriaProperties

+
ATK/AT-SPI eventSee Focus Changes.
AX API Notification + See Focus Changes. +

In addition: AXSelectedChildrenChanged

+
+

aria-busy (state)

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-busy (state) +
MSAA + IAccessible2 event + EVENT_OBJECT_STATECHANGE +
UIA event + PropertyChangedEvent +

Property: AriaProperties

+
ATK/AT-SPI event + object:state-changed:busy +
AX API Notification + AXElementBusyChanged +
+

aria-checked (state)

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-checked (state) +
MSAA + IAccessible2 event + EVENT_OBJECT_STATECHANGE +
UIA event + PropertyChangedEvent +

Properties: AriaProperties, ToggleState as part of toggle pattern

+
ATK/AT-SPI event + object:state-changed:checked +
AX API Notification + AXValueChanged +
+

aria-current (state)

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-current (state) +
MSAA + IAccessible2 event + IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED +
UIA event + PropertyChangedEvent +

Property: AriaProperties

+
ATK/AT-SPI event + object:state-changed:active +
AX API Notification + AXCurrentStateChanged +
+

aria-disabled (state)

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-disabled (state) +
MSAA + IAccessible2 event + EVENT_OBJECT_STATECHANGE +
UIA event + PropertyChangedEvent +

Properties: AriaProperties, IsEnabled

+
ATK/AT-SPI eventobject:state-changed:enabled and object:state-changed:sensitive
AX API Notification + AXDisabledStateChanged +
+

aria-describedby

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-describedby +
MSAA + IAccessible2 event + EVENT_OBJECT_DESCRIPTIONCHANGE +
UIA event + PropertyChangedEvent +

Properties: DescribedBy

+
ATK/AT-SPI event + object:property-change:accessible-description +
AX API Notification + AXDescribedByChanged +
+

aria-dropeffect (property, deprecated)

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-dropeffect (property, deprecated) +
MSAA + IAccessible2 event + IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED +
UIA event + PropertyChangedEvent +

Property: AriaProperties

+
ATK/AT-SPI event + object:property-change +
AX API Notification + AXDropEffectChanged +
+

aria-expanded (state)

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-expanded (state) +
MSAA + IAccessible2 event + EVENT_OBJECT_STATECHANGE +
UIA event + PropertyChangedEvent +

Properties: AriaProperties, ExpandCollapseState as part of the ExpandCollapse pattern

+
ATK/AT-SPI event + object:state-changed:expanded +
AX API Notification + AXRowExpanded,
+ AXRowCollapsed,
+ AXRowCountChanged +
+

aria-grabbed (state, deprecated)

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-grabbed (state, deprecated) +
MSAA + IAccessible2 event +

EVENT_OBJECT_SELECTION

+

IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED

+
UIA event + PropertyChangedEvent +

Property: AriaProperties

+
ATK/AT-SPI event + object:property-change +
AX API Notification + AXGrabbedStateChanged +
+

aria-hidden (state)

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-hidden (state) +
MSAA + IAccessible2 event + IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED +
UIA event + StructureChangedEvent +

PropertyChangedEvent

+

Property: AriaProperties

+
ATK/AT-SPI event + object:property-change +
AX API Notification + AXUIElementDestroyed,
+ AXUIElementCreated +
+

aria-invalid (state)

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-invalid (state) +
MSAA + IAccessible2 event + EVENT_OBJECT_STATECHANGE +
UIA event + PropertyChangedEvent +

Properties: AriaProperties, IsDataValidForForm

+
ATK/AT-SPI event + object:state-changed:invalid_entry +
AX API Notification + AXInvalidStatusChanged +
+

aria-label and aria-labelledby

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-label and aria-labelledby +
MSAA + IAccessible2 event + EVENT_OBJECT_NAMECHANGE +
UIA event + PropertyChangedEvent +

Property for aria-label: AriaProperties

+

Property for aria-labelledby: LabeledBy

+
ATK/AT-SPI event + object:property-change:accessible-name +
AX API Notification + AXLabelCreated +
+

aria-pressed (state)

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-pressed (state) +
MSAA + IAccessible2 event + EVENT_OBJECT_STATECHANGE +
UIA event + PropertyChangedEvent +

Properties: AriaProperties, ToggleState as part of toggle pattern

+
ATK/AT-SPI event + object:state-changed:pressed +
AX API Notification + AXPressedStateChanged +
+

aria-readonly

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-readonly +
MSAA + IAccessible2 event + EVENT_OBJECT_STATECHANGE +
UIA event + PropertyChangedEvent +

Property: AriaProperties

+
ATK/AT-SPI event + object:state-changed:readonly +
AX API Notification + AXReadOnlyStatusChanged +
+

aria-required

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-required +
MSAA + IAccessible2 event + EVENT_OBJECT_STATECHANGE +
UIA event + PropertyChangedEvent +

Properties: AriaProperties, IsRequiredForForm

+
ATK/AT-SPI event + object:state-changed:required +
AX API Notification + AXRequiredStatusChanged +
+

aria-selected (state)

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-selected (state) +
MSAA + IAccessible2 eventSee section Selection for details.
UIA eventSee section Selection for details.
ATK/AT-SPI eventSee section Selection for details.
AX API NotificationSee section Selection for details.
+

aria-valuenow

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-valuenow +
MSAA + IAccessible2 event + EVENT_OBJECT_VALUECHANGE +
UIA event + PropertyChangedEvent +

Properties: AriaProperties, also RangeValueValue if element is mapped with RangeValue Control Pattern

+
ATK/AT-SPI event + object:property-change:accessible-value +
AX API Notification + AXValueChanged +
+

aria-valuetext

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-valuetext +
MSAA + IAccessible2 event + EVENT_OBJECT_VALUECHANGE +
UIA event + PropertyChangedEvent +

Property: AriaProperties

+
ATK/AT-SPI event + object:property-change:accessible-value +
AX API Notification + AXValueChanged +
+
+
+

Changes to document content or node visibility

+

+ Processing document changes is important regardless of WAI-ARIA. The events described in the table below are used by user agents + to inform AT of changes to the DOM via the accessibility tree. For the purposes of conformance with + this standard, [=user agents=] MUST implement the behavior described in this section whenever WAI-ARIA attributes are applied to + dynamic content on a Web page. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Table of document change scenarios and events to be fired in each + API +
ScenarioMSAA + IAccessible2 eventUIA eventATK/AT-SPI eventAX API Notification
When text is removedIA2_EVENT_TEXT_REMOVEDEVENT_OBJECT_LIVEREGIONCHANGEDtext_changed::deleteIf in a live region, AXLiveRegionChanged.
If in aria-errormessage, AXValidationErrorChanged.
When text is insertedIA2_EVENT_TEXT_INSERTEDEVENT_OBJECT_LIVEREGIONCHANGEDtext_changed::insertIf in a live region, AXLiveRegionChanged.
If in aria-errormessage, AXValidationErrorChanged.
When text is changedIA2_EVENT_TEXT_REMOVE and IA2_EVENT_TEXT_INSERTEDEVENT_OBJECT_LIVEREGIONCHANGEDtext_changed::delete and text_changed::insertIf in a live region, AXLiveRegionChanged.
If in aria-errormessage, AXValidationErrorChanged.
+

Fire these events for node changes where the node in question is an element and has an accessible object:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Table of document change scenarios and events to be fired in each + API +
ScenarioMSAAMicrosoft UIA eventATK/AT-SPI eventAX API Notification
When an accessibility subtree is [=element/hidden=] + EVENT_OBJECT_HIDE
+ The MSAA event called EVENT_OBJECT_DESTROY is not used because this has a history of stability issues and assistive + technology avoids it. In any case, from the user's point of view, there is no difference between something that is hidden or destroyed. +
AutomationElement..::.StructureChangedEventchildren_changed::remove +

AXUIElementDestroyed

+

If in a live region, AXLiveRegionChanged

+
When an accessibility subtree is removed + EVENT_OBJECT_REORDER
+ The MSAA event called EVENT_OBJECT_DESTROY is not used because this has a history of stability issues and assistive + technology avoids it. In any case, from the user's point of view, there is no difference between something that is hidden or destroyed. +
AutomationElement..::.StructureChangedEventchildren_changed::remove +

AXUIElementDestroyed

+

If in a live region, AXLiveRegionChanged

+
When an accessibility subtree is shownEVENT_OBJECT_SHOW children_changed::add +

AXUIElementCreated

+

If in a live region, AXLiveRegionChanged

+
When an accessibility subtree is insertedEVENT_OBJECT_REORDER children_changed::add +

AXUIElementCreated

+

If in a live region, AXLiveRegionChanged

+
When an accessibility subtree is movedTreat it as a removal from one place and insertion in anotherTreat it as a removal from one place and insertion in anotherTreat it as a removal from one place and insertion in another +

AXUIElementDestroyed/ AXUIElementCreated

+

If in a live region, AXLiveRegionChanged

+
When an accessibility subtree is changed (e.g. replaceNode)Treat it as a removal and insertionTreat it as a removal and insertionTreat it as a removal and insertion +

AXUIElementDestroyed/ AXUIElementCreated

+

If in a live region, AXLiveRegionChanged

+
+

+ In some cases, node changes may occur where the node is not an element or has no accessible object. For example, a numbered list bullet ("12.") may have a node in the accessibility tree + but not in the DOM tree. For text within a paragraph marked in HTML as + <strong>, the <strong> element has a node in the DOM tree but may not have one in the accessibility tree. + The text itself will of course be in the accessibility tree along with the identification of the range of text that is formatted as strong. If any of the changes described in the table + above occur on such a node, user agents SHOULD compute and fire relevant text change events as described above. +

+

+ User agents SHOULD ensure that an assistive technology, running in process can receive notification of a node being removed prior to removal. This allows an assistive technology, such as a + screen reader, to refer back to the corresponding DOM node being deleted. This is important for live regions where + removals are important. For example, a screen reader would want to notify a user that another user has left a chat room. The event in + MSAA would be EVENT_OBJECT_HIDE. For ATK/AT-SPI + this would be children_changed::remove. And in macOS, the event is AXLiveRegionChanged. This also requires the user agent to provide a unique ID in the + accessibility API notification identifying the unique node being removed. +

+

+ When firing any of the above-mentioned change events, it is very useful to provide information about whether the change was caused by user input (as opposed to a timeout initiated from the + page load, etc.). This allows the assistive technology to have different rules for presenting changes from the real world as opposed to from user action. Mouse hovers are not considered + explicit user input because they can occur from accidental bumps of the mouse. +

+

To expose whether a change occurred from user input:

+
    +
  • + In ATK/AT-SPI this can be provided by appending the string + ":system" to the event name when the user did not cause the change. +
  • +
  • + In IAccessible2, which screen readers typically access in process on the same thread, the best practice is to expose the object attribute event-from-user-input:true on the + accessible object for the event, if the user caused the change. +
  • +
+

Exposing additional useful information about the context of the change:

+
    +
  • + In ATK/AT-SPI and IAccessible2, the + RELATION_MEMBER_OF relation on the accessible event's target accessible object SHOULD point to any ancestor with + aria-atomic="true" (if any). +
  • +
  • + In ATK/AT-SPI and IAccessible2, the container-live, + container-relevant, container-busy, container-atomic object attributes SHOULD be exposed on the accessible event object, providing the computed + value for the related WAI-ARIA properties. The computed value is the value of the closest ancestor. It is recommended to not + expose the object attribute if the default value is used. +
  • +
+

Additional MSAA events may be necessary:

+
    +
  • + If something changes in an ancestor with a mapped MSAA role of ROLE_SYSTEM_ALERT, then an + EVENT_SYSTEM_ALERT event SHOULD be fired for the alert. The alert role has an implied value of "assertive" for the + aria-live property. +
  • +
  • Menu events may need to be fired. See Special Events for Menus.
  • +
+
+
+

Focus Changes

+

The following table defines the accessibility API keyboard focus states and events.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Table of + accessibility APIs + for focus states and + events +
 MSAAMicrosoft UIAATK/AT-SPIAX API
Focusable stateSTATE_SYSTEM_FOCUSABLE + Current state reflected in IUIAutomationElement::CurrentIsKeyboardFocusable, can be retrieved with IUIAutomationElement::GetCurrentPropertyValue method using + UIA_IsKeyboardFocusablePropertyId property identifier. + STATE_FOCUSABLEboolean AXFocused: the AXUIElementIsAttributeSettable method returns YES.
Focused stateSTATE_SYSTEM_FOCUSED + Current state reflected in IUIAutomationElement::CurrentHasKeyboardFocus, can be retrieved with IUIAutomationElement::GetCurrentPropertyValue method using + UIA_HasKeyboardFocusPropertyId property identifier. + STATE_FOCUSEDboolean AXFocused
Focus eventEVENT_OBJECT_FOCUSClients can subscribe with IUIAutomation::AddFocusChangedEventHandler using callback interface is IUIAutomationFocusChangedEventHandler + object:state-changed:focused and: + + AXFocusedUIElementChanged
+
+
+

Selection

+

There are two cases for selection:

+
    +
  • Single selection
  • +
  • Multiple selection
  • +
+

+ In the single selection case, selection follows focus (see the section "Focus States and Events Table" for information about focus events). User + agents MUST fire the following events when aria-selected changes: +

+ + + + + + + + + + + + + + + + + + +
+ Single selection events +
ScenarioMSAAMicrosoft UIAATK/AT-SPIAX API
Focus changeEVENT_OBJECT_SELECTION and EVENT_OBJECT_STATECHANGE on newly focused item. + UIA_SelectionItem_ElementSelectedEventId on the newly focused element. +

If on a gridcell, row, option, or tab, fire UIA_SelectionItem_ElementSelectedEventId.

+
+
    +
  • object:selection-changed on the current container,
  • +
  • + object:state-changed:selected on the descendant accessible object whose selection has changed: +
      +
    • detail1 = 1 for the descendant which just became selected.
    • +
    • detail1 = 0 for the descendant which just became unselected.
    • +
    +
  • +
+
AXSelectedChildrenChanged
+

+ The multiple selection case occurs when aria-multiselectable="true" on an element with a role that supports that [=ARIA/property=]. User agents MUST fire the following events + when aria-selected changes on a descendant, as follows: +

+

+ The multiple selection case occurs when aria-multiselectable="true" on an element with a role that supports that [=ARIA/property=]. There are several important aspects: +

+
    +
  1. + In Microsoft UIA, the Selection and SelectionItem Control Patterns expose the selection availability, state, and + methods. +
  2. +
  3. + User agents MUST fire the following events when aria-selected changes on a descendant, as follows: +
  4. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Multiple selection events +
ScenarioMSAAMicrosoft UIAATK/AT-SPIAX API
+ Toggle aria-selected + EVENT_OBJECT_SELECTIONADD/EVENT_OBJECT_SELECTIONREMOVE on the item. + SelectionItem Control Pattern:UIA_SelectionItem_ElementAddedToSelectionEventId or UIA_SelectionItem_ElementRemovedFromSelectionEventId on the + item. + +
    +
  • object:selection-changed on the current container,
  • +
  • + object:state-changed:selected on any descendant accessible object whose selection has changed: +
      +
    • detail1 = 1 for any descendant which just became selected.
    • +
    • detail1 = 0 for any descendant which just became unselected.
    • +
    +
  • +
+
AXSelectedChildrenChanged
Selection follows focusEVENT_OBJECT_SELECTION and EVENT_OBJECT_STATECHANGE on newly focused item.FocusChangedEvent should be fired but individual selection event may not happen, to avoid redundancy. +
    +
  • object:selection-changed on the current container,
  • +
  • + object:state-changed:selected on any descendant accessible object whose selection has changed: + +
  • +
+
AXSelectedChildrenChanged
Select or deselect many items at onceUser agent MAY fire an EVENT_OBJECT_SELECTIONWITHIN. If this event is fired the other events noted above MAY be trimmed out for performance. + For each element selected or deselected, fire SelectionItem Control Pattern: UIA_SelectionItem_ElementAddedToSelectionEventId or + UIA_SelectionItem_ElementRemovedFromSelectionEventId on the current container. User agents MAY choose to fire the Selection Control Pattern Invalidated event, which + indicates that the selection in a container has changed significantly and requires sending more addition and removal events than the InvalidateLimit constant permits. + +
    +
  • the user agent MAY fire a single object:selection-changed event on the container, vs. multiple events, for performance,
  • +
  • + object:state-changed:selected on any descendant accessible object whose selection has changed: + +
  • +
+
AXSelectedChildrenChanged
+
+
+

Special Events for Menus

+

+ Some APIs, provide special events whenever a menu is opened or closed. [=User agents=] SHOULD provide the + events as described in the table below. If provided, because menus can be made visible or [=element/hidden=] using a variety of techniques, a [=user agent=] MUST ensure that the events are + nested and symmetrical. +

+

+ Frequently, a menubar is used to organize a hierarchy of menus. In those cases, the menubar MUST be a + DOM parent of the associated menuitems, or one defined by aria-owns. In other cases, no menubar is involved; for example, when the menu is associated with a toolbar button, or is a context menu. + Nonetheless the relevant menu events are provided as described in the following table. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Menu events +
ScenarioMSAAMicrosoft UIAAX API

Menubar is currently not active, and user moves focus to the menubar from elsewhere thereby activating it. As a result, a menuitem in the menubar is focused.

Activate the menubar and fire EVENT_SYSTEM_MENUSTART on the accessible object for the menubar.MenuModeStartEvent on the accessible object for the menu.AXMenuOpenedNotification

Focus a menuitem while menubar is activated, or focus a menuitem in a menu.

EVENT_OBJECT_FOCUSAutomationFocusChangedEventAXMenuItemSelectedNotification
+

Menu popup made visible (menu is opened).

+

Should only be fired once until the menu is closed and opened again.

+
EVENT_SYSTEM_MENUPOPUPSTARTMenuOpenedEvent, then a focus event on a menuitem.AXMenuOpenedNotification
Menu popup hidden (menu is closed).EVENT_SYSTEM_MENUPOPUPEND once only for accessible menu object and only if EVENT_SYSTEM_MENUPOPUPSTART was fired for it.MenuClosedEventAXMenuClosedNotification
Any open menus are closed including sub-menus, and user moves focus away from the menubar; menubar is deactivated.EVENT_SYSTEM_MENUEND on the menubar and deactivate the menubar.MenuClosedEvent, then MenuModeEndEventAXMenuClosedNotification
+
+
+
+ +
+

Privacy considerations

+

+ In accordance with Web Platform Design Principles, this specification provides no programmatic + interface to determine if information is being used by Assistive Technologies. However, this specification does allow an author to present different information to users of Assistive + Technologies from the information available to users who do not use Assistive Technologies. This is possible using many features of the ARIA and CORE-AAM specifications, just as this is + possible using many other parts of the web technology stack. This content disparity could be abused to perform + active fingerprinting of users of Assistive Technologies. +

+
+
+

Security considerations

+

This specification introduces no new security considerations.

+
+ +
+

Change Log

+
+

Substantive changes since the last public working draft

+ +
+
+

Substantive changes since the Core Accessibility API Mappings 1.1 Recommendation

+ +
+
+
+

Acknowledgments

+

The following people contributed to the development of this document.

+ +
+
+
+ + diff --git a/dpub-aam/.gitattributes b/dpub-aam/.gitattributes new file mode 100644 index 000000000..e5237fb0f --- /dev/null +++ b/dpub-aam/.gitattributes @@ -0,0 +1,12 @@ +# Ensure all text files do not accidentally become a CRLF file. +# Agreed upon during 5 August 2015 PF Editors concall. +# To override or prevent this behavior see the following sections. +* text eol=lf + +# Files that will always have CRLF line endings. Example: +# my-special-spec.html eol=crlf + +# Ensure non-text files don't get accidentally swept up by above. +*.png binary +*.jpg binary +*.zargo binary diff --git a/dpub-aam/.gitignore b/dpub-aam/.gitignore new file mode 100644 index 000000000..ead8624e4 --- /dev/null +++ b/dpub-aam/.gitignore @@ -0,0 +1,219 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +<<<<<<< HEAD +*.py[co] +======= +*.py[cod] +>>>>>>> a51b9db2d4ebd2968f49781325ba3e4741f0127f + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg diff --git a/dpub-aam/index.html b/dpub-aam/index.html new file mode 100644 index 000000000..d8f2359b5 --- /dev/null +++ b/dpub-aam/index.html @@ -0,0 +1,2705 @@ + + + + Digital Publishing Accessibility API Mappings 1.1 + + + + + + + + + +
+

+ The Digital Publishing Accessibility API Mappings (DPub-AAM) defines how [=user agents=] map the Digital Publishing WAI-ARIA Module [[dpub-aria-1.1]] markup to platform + accessibility APIs. It is intended for user agent developers responsible for accessibility in their user agent so that they can support the accessibility content produced for digital publishing. +

+
+
+

+ The primary change since the First Public Working Draft was to update the Mac AX API mappings to add the AXCustomContent fields for announcing roles. Feedback on any aspect of the + specification is encouraged. A list of all substantive changes is available in the change log. +

+
+
+

Introduction

+ +

+ The implementation of this specification in user agents enables authors to produce more accessible e-books, by conveying structural book constructs used by the digital publishing industry to + assistive technologies. It does this by extending the Core Accessibility API Mappings 1.1 [[CORE-AAM-1.1]] and the + Accessible Name and Description: Computation 1.2 [[ACCNAME-1.2]] specifications for user agents. It provides Accessibility API + Mapping guidance for the roles defined in the Digital Publish WAI-ARIA Module. +

+ +

+ The DPub-AAM is part of the WAI-ARIA suite described in the + WAI-ARIA Overview. +

+
+
+
+

RFC-2119 Keywords

+ +

+ RFC-2119 keywords are formatted in uppercase and contained in a strong element with class="rfc2119". When the keywords shown above are used, but do not share this + format, they do not convey formal information in the RFC 2119 sense, and are merely explanatory (i.e., informative). As much as possible, such usages are avoided in this specification. +

+
+ +
+

Normative and Informative Sections

+ +

The indication whether a section is normative or non-normative (informative) applies to the entire section including sub-sections.

+ +

+ Informative sections provide information useful to understanding the specification. Such sections may contain examples of recommended practice, but it is not required to follow such + recommendations in order to conform to this specification. +

+
+ +
+

Roles deprecated in DPUB-ARIA

+ +

+ The DPUB-ARIA specification [[dpub-aria-1.1]] lists some roles as deprecated. Although this means authors are encouraged not to use these roles, it is expected that the roles could still be + used in legacy content. Therefore, it is important that user agents continue to map these roles to accessibility APIs, and doing so is part of conformance to this specification. When future + versions of the DPUB-ARIA specification change such roles from deprecated to removed, they will be removed from the mappings as well and user agents will no longer be asked to continue + support for those roles. +

+
+
+
+

Supporting keyboard navigation

+ +

+ Enabling keyboard navigation in web applications is a necessary step toward making accessible web applications possible. Conforming [=user agents=] MUST conform to + Supporting Keyboard Navigation requirements in [[!CORE-AAM-1.1]]. +

+
+
+

Mapping WAI-ARIA to accessibility APIs

+ +
+

General rules for exposing WAI-ARIA semantics

+ +

+ This section MUST conform to General rules for exposing WAI-ARIA semantics in + [[!CORE-AAM-1.1]]. +

+
+
+
+

Conflicts between native markup semantics and WAI-ARIA

+ +

+ User agents MUST conform to Conflicts between native markup semantics and WAI-ARIA in + [[!CORE-AAM-1.1]]. +

+
+
+

Exposing attributes that do not directly map to accessibility API properties

+ +

+ User agents MUST conform to + Exposing attributes that do not directly map to accessibility API properties + in [[!CORE-AAM-1.1]]. +

+
+
+

Role mapping

+ +

+ Platform accessibility APIs traditionally have had a finite set of predefined roles that + are expected by assistive technologies on that platform and only one or two roles may be exposed. In contrast, + WAI-ARIA allows multiple roles to be specified as an ordered set of space-separated valid role tokens. The additional roles are + fallback roles similar to the concept of specifying multiple fonts in case the first choice font type is not supported. +

+ +
+

General Rules

+ +

+ User agents MUST conform to the Role Mapping General Rules accessibility API + computational requirements in [[!CORE-AAM-1.1]]. +

+
+ +
+

Role Mapping Tables

+ +

+ Translators: For label text associated with the following table and its toggle buttons, see the mappingTableLabels object in the <head> section of this + document. +

+ +

+ This section defines how WAI-ARIA digital publishing roles map to platform accessibility APIs. Elements having roles with a prefix value of doc-, that are not listed in this + role mapping table, have no normative mappings. +

+ +
+

doc-abstract

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-abstract +
Computed Roledoc-abstract
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_SECTION
  • +
  • Object attribute xml-roles:doc-abstract.
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'abstract'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_SECTION and object attribute xml-roles:doc-abstract.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXApplicationGroup
  • +
  • AXRoleDescription: 'group'
  • +
  • AXCustomContent: { label: "type", value: "abstract" }
  • +
+
+
+ +
+

doc-acknowledgments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-acknowledgments +
Computed Roledoc-acknowledgments
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_LANDMARK
  • +
  • Object attribute xml-roles:doc-acknowledgments.
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'acknowledgements'
  • +
  • Landmark Type is Custom
  • +
  • Localized Landmark Type is 'acknowledgements'
  • +
+
ATK/AT-SPI Role +

+ Expose ROLE_LANDMARK and object attribute xml-roles:doc-acknowledgments. +

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXLandmarkRegion
  • +
  • AXRoleDescription: 'region'
  • +
  • AXCustomContent: { label: "type", value: "acknowledgements" }
  • +
+
+
+ +
+

doc-afterword

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-afterword +
Computed Roledoc-afterword
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_LANDMARK
  • +
  • Object attribute xml-roles:doc-afterword.
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'afterword'
  • +
  • Landmark Type is Custom
  • +
  • Localized Landmark Type is 'afterword'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LANDMARK and object attribute xml-roles:doc-afterword.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXLandmarkRegion
  • +
  • AXRoleDescription: 'region'
  • +
  • AXCustomContent: { label: "type", value: "afterword" }
  • +
+
+
+ +
+

doc-appendix

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-appendix +
Computed Roledoc-appendix
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_LANDMARK
  • +
  • Object attribute xml-roles:doc-appendix.
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'appendix'
  • +
  • Landmark Type is Custom
  • +
  • Localized Landmark Type is 'appendix'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LANDMARK and object attribute xml-roles:doc-appendix.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXLandmarkRegion
  • +
  • AXRoleDescription: 'region'
  • +
  • AXCustomContent: { label: "type", value: "appendix" }
  • +
+
+
+ + + +
+

doc-biblioentry

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-biblioentry +
Computed Roledoc-biblioentry
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose +

+ ROLE_SYSTEM_LISTITEM + + STATE_SYSTEM_READONLY +

+

IAccessible2:

+

Object attribute xml-roles:doc-biblioentry.

+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'biblioentry'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LIST_ITEM and object attribute xml-roles:doc-bilioentry.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: <nil>
  • +
  • AXRoleDescription: 'group'
  • +
  • AXCustomContent: {}
  • +
+
+
+ +
+

doc-bibliography

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-bibliography +
Computed Roledoc-bibliography
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_LANDMARK
  • +
  • Object attribute xml-roles:doc-bibliography.
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'bibliography'
  • +
  • Landmark Type is Custom
  • +
  • Localized Landmark Type is 'biblography'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LANDMARK and object attribute xml-roles:doc-bibliography.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXLandmarkRegion
  • +
  • AXRoleDescription: 'region'
  • +
  • AXCustomContent: { label: "type", value: "bibliography" }
  • +
+
+
+ +
+

doc-biblioref

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-biblioref +
Computed Roledoc-biblioref
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose +
    +
  • ROLE_SYSTEM_LINK + STATE_LINKED
  • +
  • STATE_LINKED on all descendants
  • +
+

IAccessible2:

+
    +
  • Object attribute xml-roles:doc-biblioref.
  • +
  • AccessibleHypertext interface
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'biblioref'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LINK and object attribute xml-roles:doc-biblioref.

+
Mac AX API +
    +
  • AXRole: AXLink
  • +
  • AXSubrole: <nil>
  • +
  • AXRoleDescription: 'link'
  • +
  • AXCustomContent: { label: "type", value: "bibliography" }
  • +
+
+
+ +
+

doc-chapter

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-chapter +
Computed Roledoc-chapter
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_LANDMARK
  • +
  • Object attribute xml-roles:doc-chapter.
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'chapter'
  • +
  • Landmark Type is Custom
  • +
  • Localized Landmark Type is 'chapter'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LANDMARK and object attribute xml-roles:chapter.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXLandmarkChapter
  • +
  • AXRoleDescription: 'chapter'
  • +
  • AXCustomContent: {}
  • +
+
+
+ +
+

doc-colophon

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-colophon +
Computed Roledoc-colophon
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose +

IA2_ROLE_SECTION

+

IAccessible2: Object attribute xml-roles:doc-colophon.

+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'colophon'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_SECTION and object attribute xml-roles:doc-colophon.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXApplicationGroup
  • +
  • AXRoleDescription: 'group'
  • +
  • AXCustomContent: { label: "type", value: "colophon" }
  • +
+
+
+ +
+

doc-conclusion

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-conclusion +
Computed Roledoc-conclusion
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_LANDMARK
  • +
  • Object attribute xml-roles:doc-conclusion.
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'conclusion'
  • +
  • Landmark Type is Custom
  • +
  • Localized Landmark Type is 'conclusion'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LANDMARK and object attribute xml-roles:doc-conclusion.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXLandmarkRegion
  • +
  • AXRoleDescription: 'region'
  • +
  • AXCustomContent: { label: "type", value: "conclusion" }
  • +
+
+
+ +
+

doc-cover

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-cover +
Computed Roledoc-cover
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose +

ROLE_SYSTEM_GRAPHIC

+

IAccessible2: Object attribute xml-roles:doc-cover.

+
UIA Control Type + Other FeaturesControl Type is Image
ATK/AT-SPI Role +

expose ROLE_IMAGE and object attribute xml-roles:doc-cover.

+
Mac AX API +
    +
  • AXRole: AXImage
  • +
  • AXSubrole: <nil>
  • +
  • AXRoleDescription: 'cover image'
  • +
  • AXCustomContent: {}
  • +
+
+
+ +
+

doc-credit

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-credit +
Computed Roledoc-credit
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose +

IA2_ROLE_SECTION

+

IAccessible2:

+ Object attribute + xml-roles:doc-credit +
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'credit'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_SECTION and object attribute xml-roles:doc-credit.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXApplicationGroup
  • +
  • AXRoleDescription: 'group'
  • +
  • AXCustomContent: {}
  • +
+
+
+ +
+

doc-credits

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-credits +
Computed Roledoc-credits
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_LANDMARK
  • +
  • Object attribute xml-roles:doc-credits.
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'credits'
  • +
  • Landmark Type is Custom
  • +
  • Localized Landmark Type is 'credits'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LANDMARK and object attribute xml-roles:doc-credits.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXLandmarkRegion
  • +
  • AXRoleDescription: 'region'
  • +
  • AXCustomContent: { label: "type", value: "credits" }
  • +
+
+
+ +
+

doc-dedication

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-dedication +
Computed Roledoc-dedication
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose +

IA2_ROLE_SECTION

+

IAccessible2:

+ Object attribute + xml-roles:doc-dedication +
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'dedication'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_SECTION and object attribute xml-roles:doc-dedication.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXApplicationGroup
  • +
  • AXRoleDescription: 'group'
  • +
  • AXCustomContent: { label: "type", value: "dedication" }
  • +
+
+
+ +
+

doc-endnote

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-endnote +
Computed Roledoc-endnote
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose +

+ ROLE_SYSTEM_LISTITEM + + STATE_SYSTEM_READONLY +

+

IAccessible2:

+

Object attribute xml-roles:doc-endnote.

+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'endnote'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LIST_ITEM and object attribute xml-roles:doc-endnote.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: <nil>
  • +
  • AXRoleDescription: 'group'
  • +
  • AXCustomContent: {}
  • +
+
+
+ +
+

doc-endnotes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-endnotes +
Computed Roledoc-endnotes
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_LANDMARK
  • +
  • Object attribute xml-roles:doc-endnotes.
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'endnotes'
  • +
  • Landmark Type is Custom
  • +
  • Localized Landmark Type is 'endnotes'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LANDMARK and object attribute xml-roles:doc-endnotes.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXLandmarkRegion
  • +
  • AXRoleDescription: 'region'
  • +
  • AXCustomContent: { label: "type", value: "end notes" }
  • +
+
+
+ +
+

doc-epigraph

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-epigraph +
Computed Roledoc-epigraph
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose +

IA2_ROLE_SECTION

+

IAccessible2:

+ Object attribute + xml-roles:doc-epigraph +
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'epigraph'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_SECTION and object attribute xml-roles:doc-epigraph.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXApplicationGroup
  • +
  • AXRoleDescription: 'group'
  • +
  • AXCustomContent: { label: "type", value: "epigraph" }
  • +
+
+
+ +
+

doc-epilogue

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-epilogue +
Computed Roledoc-epilogue
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_LANDMARK
  • +
  • Object attribute xml-roles:doc-epilogue.
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'epilogue'
  • +
  • Landmark Type is Custom
  • +
  • Localized Landmark Type is 'epilogue'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LANDMARK and object attribute xml-roles:doc-epilogue.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXLandmarkRegion
  • +
  • AXRoleDescription: 'region'
  • +
  • AXCustomContent: { label: "type", value: "epilog" }
  • +
+
+
+ +
+

doc-errata

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-errata +
Computed Roledoc-errata
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_LANDMARK
  • +
  • Object attribute xml-roles:doc-errata
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'errata'
  • +
  • Landmark Type is Custom
  • +
  • Localized Landmark Type is 'errata'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LANDMARK and object attribute xml-roles:doc-errata.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXLandmarkRegion
  • +
  • AXRoleDescription: 'region'
  • +
  • AXCustomContent: { label: "type", value: "errata" }
  • +
+
+
+ +
+

doc-example

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-example +
Computed Roledoc-example
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose +

IA2_ROLE_SECTION

+

IAccessible2:

+ Object attribute + xml-roles:doc-example +
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'example'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_SECTION and object attribute xml-roles:doc-example.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXApplicationGroup
  • +
  • AXRoleDescription: 'group'
  • +
  • AXCustomContent: { label: "type", value: "example" }
  • +
+
+
+ +
+

doc-footnote

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-footnote +
Computed Roledoc-footnote
MSAA + IAccessible2 Role + Other IAccessible2 Features +

Expose IAccessible2:

+
    +
  • IA2_ROLE_FOOTNOTE
  • +
  • Object attribute: xml-roles:doc-footnote
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'footnote'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_FOOTNOTE and object attribute xml-roles:doc-footnote.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXApplicationGroup
  • +
  • AXRoleDescription: 'group'
  • +
  • AXCustomContent: { label: "type", value: "footnote" }
  • +
+
+
+ +
+

doc-foreword

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-foreword +
Computed Roledoc-foreword
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_LANDMARK
  • +
  • Object attribute xml-roles:doc-foreword
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'foreword'
  • +
  • Landmark Type is Custom
  • +
  • Localized Landmark Type is 'foreword'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LANDMARK and object attribute xml-roles:doc-foreword.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXLandmarkRegion
  • +
  • AXRoleDescription: 'region'
  • +
  • AXCustomContent: { label: "type", value: "foreword" }
  • +
+
+
+ +
+

doc-glossary

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-glossary +
Computed Roledoc-glossary
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_LANDMARK
  • +
  • Object attribute xml-roles:doc-glossary
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'glossary'
  • +
  • Landmark Type is Custom
  • +
  • Localized Landmark Type is 'glossary'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LANDMARK and object attribute xml-roles:doc-glossary.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXLandmarkRegion
  • +
  • AXRoleDescription: 'region'
  • +
  • AXCustomContent: { label: "type", value: "glossary" }
  • +
+
+
+ +
+

doc-glossref

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-glossref +
Computed Roledoc-glossref
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose +
    +
  • ROLE_SYSTEM_LINK + STATE_LINKED
  • +
  • STATE_LINKED on all descendants
  • +
+

IAccessible2:

+
    +
  • Object attribute xml-roles:doc-glossref.
  • +
  • AccessibleHypertext interface
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'glossref'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LINK and object attribute xml-roles:doc-glossref.

+
Mac AX API +
    +
  • AXRole: AXLink
  • +
  • AXSubrole: <nil>
  • +
  • AXRoleDescription: 'link'
  • +
  • AXCustomContent: { label: "type", value: "glossary" }
  • +
+
+
+ +
+

doc-index

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-index +
Computed Roledoc-index
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_LANDMARK
  • +
  • Object attribute xml-roles:doc-index
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'index'
  • +
  • Landmark Type is Custom
  • +
  • Localized Landmark Type is 'index'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LANDMARK and object attribute xml-roles:doc-index.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXLandmarkNavigation
  • +
  • AXRoleDescription: 'navigation'
  • +
  • AXCustomContent: { label: "type", value: "index" }
  • +
+
+
+ +
+

doc-introduction

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-introduction +
Computed Roledoc-introduction
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_LANDMARK
  • +
  • Object attribute xml-roles:doc-introduction
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'introduction'
  • +
  • Landmark Type is Custom
  • +
  • Localized Landmark Type is 'introduction'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LANDMARK and object attribute xml-roles:doc-introduction.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXLandmarkRegion
  • +
  • AXRoleDescription: 'region'
  • +
  • AXCustomContent: { label: "type", value: "introduction" }
  • +
+
+
+ +
+

doc-noteref

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-noteref +
Computed Roledoc-noteref
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose +
    +
  • ROLE_SYSTEM_LINK + STATE_LINKED
  • +
  • STATE_LINKED on all descendants
  • +
+

IAccessible2:

+
    +
  • Object attribute xml-roles:doc-noteref.
  • +
  • AccessibleHypertext interface
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'noteref'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LINK and object attribute xml-roles:doc-noteref.

+
Mac AX API +
    +
  • AXRole: AXLink
  • +
  • AXSubrole: <nil>
  • +
  • AXRoleDescription: 'link'
  • +
  • AXCustomContent: { label: "type", value: "note" }
  • +
+
+
+ +
+

doc-notice

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-notice +
Computed Roledoc-notice
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose +

IA2_ROLE_NOTE

+

IAccessible2:

+ Object attribute xml-roles:doc-notice. +
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'notice'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_COMMENT and object attribute xml-roles:doc-notice.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXDocumentNote
  • +
  • AXRoleDescription: 'note'
  • +
  • AXCustomContent: {}
  • +
+
+
+ +
+

doc-pagebreak

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-pagebreak +
Computed Roledoc-pagebreak
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose +

ROLE_SYSTEM_SEPARATOR

+

IAccessible2:

+ Object attribute xml-roles:doc-pagebreak. +
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'pagebreak'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_SEPARATOR and object attribute xml-roles:doc-pagebreak.

+
Mac AX API +
    +
  • AXRole: AXSplitter
  • +
  • AXSubrole: <nil>
  • +
  • AXRoleDescription: 'splitter'
  • +
  • AXCustomContent: { label: "type", value: "page break" }
  • +
+
+
+ + + +
+

doc-pageheader

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-pageheader +
Computed Roledoc-pageheader
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_HEADER
  • +
  • Object attribute xml-roles:doc-pageheader
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Control Pattern: Annotation
  • +
  • Annotation.AnnotationTypeId: Header
  • +
+
ATK/AT-SPI Role + Expose +

ROLE_HEADER and object attribute xml-roles:doc-pageheader.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: <nil>
  • +
  • AXRoleDescription: 'group'
  • +
  • AXCustomContent: { label: "type", value: "header" }
  • +
+
+
+ +
+

doc-pagelist

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-pagelist +
Computed Roledoc-pagelist
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_LANDMARK
  • +
  • Object attribute xml-roles:doc-pagelist
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'pagelist'
  • +
  • Landmark Type is Custom
  • +
  • Localized Landmark Type is 'pagelist'
  • +
+
ATK/AT-SPI Role + Expose +

ROLE_LANDMARK and object attribute xml-roles:doc-pagelist.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXLandmarkNavigation
  • +
  • AXRoleDescription: 'navigation'
  • +
  • AXCustomContent: { label: "type", value: "page list" }
  • +
+
+
+ +
+

doc-part

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-part +
Computed Roledoc-part
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_LANDMARK
  • +
  • Object attribute xml-roles:doc-part
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'part'
  • +
  • Landmark Type is Custom
  • +
  • Localized Landmark Type is 'part'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LANDMARK and object attribute xml-roles:doc-part.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXLandmarkRegion
  • +
  • AXRoleDescription: 'region'
  • +
  • AXCustomContent: { label: "type", value: "part" }
  • +
+
+
+ +
+

doc-preface

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-preface +
Computed Roledoc-preface
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_LANDMARKi
  • +
  • Object attribute xml-roles:doc-preface
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'preface'
  • +
  • Landmark Type is Custom
  • +
  • Localized Landmark Type is 'preface'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LANDMARK and object attribute xml-roles:doc-preface.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXLandmarkRegion
  • +
  • AXRoleDescription: 'region'
  • +
  • AXCustomContent: { label: "type", value: "preface" }
  • +
+
+
+ +
+

doc-prologue

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-prologue +
Computed Roledoc-prologue
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_LANDMARK
  • +
  • Object attribute xml-roles:doc-prologue
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'prologue'
  • +
  • Landmark Type is Custom
  • +
  • Localized Landmark Type is 'prologue'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LANDMARK and object attribute xml-roles:doc-prologue.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXLandmarkRegion
  • +
  • AXRoleDescription: 'region'
  • +
  • AXCustomContent: { label: "type", value: "prolog" }
  • +
+
+
+ +
+

doc-pullquote

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-pullquote +
Computed Roledoc-pullquote
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_SECTION
  • +
  • Object attribute xml-roles:doc-pullquote
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'pullquote'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_SECTION and object attribute xml-roles:doc-pullquote.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXApplicationGroup
  • +
  • AXRoleDescription: 'group'
  • +
  • AXCustomContent: { label: "type", value: "pull quote" }
  • +
+
+
+ +
+

doc-qna

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-qna +
Computed Roledoc-qna
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose +

IA2_ROLE_SECTION

+

IAccessible2:

+ Object attribute + xml-roles:doc-qna +
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'qna'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_SECTION and object attribute xml-roles:doc-qna.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXApplicationGroup
  • +
  • AXRoleDescription: 'group'
  • +
  • AXCustomContent: { label: "type", value: "Q&A" }
  • +
+
+
+ +
+

doc-subtitle

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-subtitle +
Computed Roledoc-subtitle
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_HEADING
  • +
  • Object attribute xml-roles:doc-subtitle
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'subtitle'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_HEADING and object attribute xml-roles:doc-subtitle.

+
Mac AX API +
    +
  • AXRole: AXHeading
  • +
  • AXSubrole: AXSubtitle
  • +
  • AXRoleDescription: 'subtitle'
  • +
  • AXCustomContent: {}
  • +
+
+
+ +
+

doc-tip

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-tip +
Computed Roledoc-tip
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose +

IA2_ROLE_NOTE

+

IAccessible2:

+ Object attribute xml-roles:doc-tip +
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'tip'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_COMMENT and object attribute xml-roles:doc-tip.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXDocumentNote
  • +
  • AXRoleDescription: 'note'
  • +
  • AXCustomContent: { label: "type", value: "tip" }
  • +
+
+
+ +
+

doc-toc

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPUB-ARIA Specification + doc-toc +
Computed Roledoc-toc
MSAA + IAccessible2 Role + Other IAccessible2 Features + Expose IAccessible2: +
    +
  • IA2_ROLE_LANDMARK
  • +
  • Object attribute xml-roles:doc-toc
  • +
+
UIA Control Type + Other Features +
    +
  • Control Type is Text
  • +
  • Localized Control Type is 'toc'
  • +
  • Landmark Type is Custom
  • +
  • Localized Landmark Type is 'toc'
  • +
+
ATK/AT-SPI Role +

Expose ROLE_LANDMARK and object attribute xml-roles:doc-toc.

+
Mac AX API +
    +
  • AXRole: AXGroup
  • +
  • AXSubrole: AXLandmarkNavigation
  • +
  • AXRoleDescription: 'navigation'
  • +
  • AXCustomContent: { label: "type", value: "table of contents" }
  • +
+
+
+
+
+
+

Translatable Values

+ +

+ The HTML specification states that other specifications can define translatable attributes [[html]]. The language and directionality of each + attribute value is the same as the language and directionality of the element [[html]]. +

+ +

To be understandable by assistive technology users, the following role mapping values intended for human consumption should be translated when a page is localized:

+ + +
+
+

State and Property Mapping

+ +

+ This section describes how to expose WAI-ARIA states and object + properties. User agents MUST conform to the + State and Property Mapping accessibility API computational requirements in [[!CORE-AAM-1.1]]. +

+
+
+

Special Processing Requiring Additional Computation

+ +
+

Name and Description

+ +

+ When computing an accessible name or accessible description, [=user agents=] MUST conform to the section titled + Text Alternative Computation of the [[!ACCNAME-1.2]] specification. +

+
+ +
+

Relations

+ +

+ User agents MUST conform to the Relation accessibility API computational + requirements in [[!CORE-AAM-1.1]]. +

+
+ +
+

Group Position

+ +

+ User agents MUST conform to the Group Position accessibility API computational + requirements in [[!CORE-AAM-1.1]]. +

+
+
+
+

Actions

+ +

+ User agents MUST conform to the Actions accessibility API computational requirements in + [[!CORE-AAM-1.1]]. +

+
+
+

Events

+ +

+ [=user agents=] fire events for user actions, WAI-ARIA state changes, changes to + document content or node visibility, changes in selection, and operation of menus. Conforming [=user agents=] MUST support the [[!CORE-AAM-1.1]] + Events mappings. +

+
+
+

Security Considerations

+ +

This specification introduces no new security considerations.

+
+
+

Privacy Considerations

+ +

+ In accordance with Web Platform Design Principles, this specification provides no programatic + interface to determine if information is being used by assistive technologies. However, this specification does allow an author to present different information to users of assistive + technologies from the information available to users who do not use assistive technologies. This is possible using many features of the DPUB-ARIA specification, just as this is possible using + many other parts of the web technology stack. This content disparity could be abused to perform active fingerprinting of users of assistive + technologies. +

+
+
+

Appendices

+ +
+

Change Log

+ +
+

Substantive changes since the First Public Working Draft

+ +
    +
  • 01-Dec-2023: Removed the mappings that implied doc-biblioentry and doc-endnote on listitem descendants doc-bibliograph and doc-endnotes, respectively.
  • +
  • 10-Jan-2023: Added section on translatable values.
  • +
  • 04-Jan-2023: Fixed incorrect doc-pagebreak role mentioned in ATK/AT-SPI mapping for doc-preface.
  • +
  • 04-Jan-2023: Updated Mac AX API mappings to add AXCustomContent fields.
  • +
+
+ +
+

Other substantive changes since Digital Publishing Accessibility API Mappings 1.0

+
    +
  • 20-Sep-2021: Added mappings for doc-pageheader and doc-pagefooter roles.
  • +
+
+
+ +
+

Acknowledgments

+ +

The following people contributed to the development of this document:

+ + + +
+
+
+ + diff --git a/dpub-aria/.gitattributes b/dpub-aria/.gitattributes new file mode 100644 index 000000000..e5237fb0f --- /dev/null +++ b/dpub-aria/.gitattributes @@ -0,0 +1,12 @@ +# Ensure all text files do not accidentally become a CRLF file. +# Agreed upon during 5 August 2015 PF Editors concall. +# To override or prevent this behavior see the following sections. +* text eol=lf + +# Files that will always have CRLF line endings. Example: +# my-special-spec.html eol=crlf + +# Ensure non-text files don't get accidentally swept up by above. +*.png binary +*.jpg binary +*.zargo binary diff --git a/dpub-aria/.gitignore b/dpub-aria/.gitignore new file mode 100644 index 000000000..ead8624e4 --- /dev/null +++ b/dpub-aria/.gitignore @@ -0,0 +1,219 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +<<<<<<< HEAD +*.py[co] +======= +*.py[cod] +>>>>>>> a51b9db2d4ebd2968f49781325ba3e4741f0127f + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg diff --git a/dpub-aria/.pr-preview.json b/dpub-aria/.pr-preview.json new file mode 100644 index 000000000..12cc33624 --- /dev/null +++ b/dpub-aria/.pr-preview.json @@ -0,0 +1,4 @@ +{ + "src_file": "index.html", + "type": "respec" +} \ No newline at end of file diff --git a/dpub-aria/README.md b/dpub-aria/README.md new file mode 100644 index 000000000..fd5fb28a5 --- /dev/null +++ b/dpub-aria/README.md @@ -0,0 +1,4 @@ + +# Specification 'dpub-aria' + +This is the repository for Digital Publishing WAI-ARIA Module (dpub-aria), which is or was part of the [ARIA suite](https://www.w3.org/WAI/ARIA/deliverables). General information about editing specifications is in the [main ARIA repository readme](https://github.com/w3c/aria/). \ No newline at end of file diff --git a/dpub-aria/index.html b/dpub-aria/index.html new file mode 100644 index 000000000..4012080dd --- /dev/null +++ b/dpub-aria/index.html @@ -0,0 +1,4491 @@ + + + + Digital Publishing WAI-ARIA Module 1.1 + + + + + + + + + + +
+

+ Enabling users of assistive technologies to find their way through web content requires embedding semantic metadata about web document structural divisions. This is particularly important for + structural divisions of long-form documents and goes along with embedding semantic metadata about web-application widgets and behaviors for assistive technologies. This specification defines a + set of WAI-ARIA roles specific to helping users of assistive technologies navigate through such long-form documents. +

+ +

This document is part of the WAI-ARIA suite described in the WAI-ARIA Overview.

+
+
+

+ While feedback on any aspect of the specification is encouraged, we would particularly like feedback on the addition of the doc-pageheader and doc-pagefooter roles. +

+

There have been only minor clarifications since the First Public Working Draft.

+
+
+
+

Introduction

+ +

+ WAI-ARIA is a technical specification that defines a common host language semantic accessibility API and framework that enables web + browsers to map the accessibility semantics in web content to platform-specific accessibility APIs. This enables web content to be interoperable with platform assistive technologies similar to + native platform applications without platform dependencies. +

+ +

+ This specification is a modular extension of WAI-ARIA designed for the digital publishing industry. The goals of this specification + include: +

+ + + +

The roles defined in this specification are derived from the EPUB Structural Semantics Vocabulary.

+ +

+ For a more detailed explanation of WAI-ARIA please refer to the + WAI-ARIA Introduction and how it applies to Rich Internet Application Accessibility. +

+ +
+

Target Audience

+ +

+ This specification defines a module of WAI-ARIA for digital publishing, including [=roles=], [=states=], [=ARIA/properties=] and + values. It impacts several audiences: +

+ + + +

Each conformance requirement indicates the audience to which it applies.

+ +

+ Although this specification is applicable to the above audiences, it is not specifically targeted to, nor is it intended to be the sole source of information for, any of these audiences. In + the future, additional documents will be created to assist authors in applying these WAI-ARIA semantics for the publishing industry + and to define how the information in this document is mapped to platform accessibility APIs. +

+
+ +
+

User Agent Support

+ +

+ This module builds on the general User Agent support principles defined in [[WAI-ARIA]] by also providing the ability for user + agents to enhance the general user interface presented to readers. +

+
+ +
+

Co-Evolution of WAI-ARIA and Host Languages

+ +

+ The Digital Publishing WAI-ARIA module follows the model for + co-evolution of WAI-ARIA and host languages defined in [[WAI-ARIA]]. + It is intended to augment semantics in supporting languages like [[HTML]], [[SVG2]] and EPUB, or to be used as an accessibility enhancement technology in other markup-based languages that do + not explicitly include support for ARIA. It clarifies semantics to assistive technologies when authors create new types of objects, via style and script, that are not yet directly supported + by the language of the page, because the invention of new types of objects is faster than standardized support for them appears in web languages. +

+ +

+ It is not appropriate to create objects with style and script when the host language provides a semantic element for that type of objects. While + WAI-ARIA can improve the accessibility of these objects, accessibility is best provided by allowing the user agent to handle the + object natively. For example, it is not better to use a heading role on a div element than it is to use a native heading element, such as an h1. +

+ +

+ It is expected that, over time, host languages will evolve to provide semantics for objects that currently can only be declared with this specification. This is natural and desirable, as one + goal of WAI-ARIA is to help stimulate the emergence of more semantic and accessible markup. When native semantics for a given + feature become available, it is appropriate for authors to use the native feature and stop using this module for that feature. Legacy content may continue to use the Digital Publishing + WAI-ARIA module, however, so the need for user agents to support it remains. +

+ +

+ While specific features of this module may lose importance over time, the general possibility of the Digital Publishing + WAI-ARIA module to add semantics to web pages or open web-based standards, such as EPUB, is expected to be a persistent need. Host + languages may not implement all the semantics this module provides, and various host languages may implement different subsets of the features. New types of objects are continually being + developed, and one goal of this specification is to provide a way to make such objects accessible, because authoring practices often advance faster than host language standards. In this way, + this module and host languages both evolve together but at different rates. +

+ +

+ Some host languages exist to create semantics for features other than the user interface. For example, SVG expresses the semantics behind production of graphical objects, not of user + interface components that those objects may represent. Host languages such as these might, by design, not provide native semantics that map to this specification's features. In these cases, + the Digital Publishing WAI-ARIA module could be adopted as a long-term approach to add semantic information to these host + languages. +

+
+ +
+

Authoring Practices

+ +
+

Authoring Tools

+ +

+ Many of the requirements in the definitions of the WAI-ARIA and Digital Publishing + WAI-ARIA [=roles=], [=states=] and [=ARIA/properties=] can be checked automatically during the development process, similar to + other quality control processes used for validating code. To assist authors who are creating digital publications, such as EPUB, can compare the semantic structure of Digital Publishing + WAI-ARIA roles from the DOM to that defined in this specification and notify the + author of errors or simply create templates that enforce that structure. +

+
+ +
+

Testing Practices and Tools

+ +

+ The accessibility of interactive content cannot be confirmed by static checks alone. Developers of interactive content should test for device-independent access to + widgets and applications, and should verify accessibility API access to all content and changes during user + interaction. +

+
+
+ +
+

Assistive Technologies

+ +

+ Programmatic access to accessibility semantics is essential for assistive technologies. For more information, refer to the + Assistive Technologies section in [[WAI-ARIA]]. +

+
+
+
+

Normative sections provide requirements that authors, user agents and assistive technologies MUST follow for an implementation to conform to this specification.

+ +

+ Non-normative sections provide information useful to understanding the specification. Such sections may contain examples of recommended practice, but it is not required to follow such + recommendations to conform to this specification. +

+
+
+

Digital Publishing Roles

+ +

+ This section defines additions to the WAI-ARIA roles model and describes the characteristics and properties of + all roles. See ARIA Roles for descriptions of the fields provided by this module. +

+ +
+

Definition of Roles

+ +

+ Below is an alphabetical list of WAI-ARIA roles to be used by rich internet application + authors. +

+ +

Placeholder for compact list of roles

+ +
+ doc-abstract + +
+

A short summary of the principal ideas, concepts, and conclusions of the work, or of a section or excerpt within it.

+ +
+<section role="doc-abstract" aria-label="Abstract">
+   <p>Accessibility of web content requires semantic information about widgets, structures,
+      and behaviors …</p>
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-abstract: +
CharacteristicValue
Is Abstract: 
Superclass Role:section
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-acknowledgments + +
+

A section or statement that acknowledges significant contributions by persons, organizations, governments, and other entities to the realization of the work.

+ +
+<section role="doc-acknowledgments">
+   <p>I would like to extend my sincere gratitude to … </p>
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-acknowledgments: +
CharacteristicValue
Is Abstract: 
Superclass Role:landmark
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-afterword + +
+

+ A closing statement from the author or a person of importance, typically providing insight into how the content came to be written, its significance, or related events that have + transpired since its timeline. +

+ +
+<section role="doc-afterword">
+   <h2>Afterword: Why I Wrote This Book</h2>
+   …
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-afterword: +
CharacteristicValue
Is Abstract: 
Superclass Role:landmark
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-appendix + +
+

A section of supplemental information located after the primary content that informs the content but is not central to it.

+ +
+<section role="doc-appendix">
+   <h2>Appendix A. Historical Timeline</h2>
+   …
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-appendix: +
CharacteristicValue
Is Abstract:
Superclass Role:landmark
Subclass Roles:
Base Concept:
Related Concepts:
Required Context Role:
Required Owned Elements:
Required States and Properties:
Supported States and Properties:
Inherited States and Properties:
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational:
Implicit Value for Role:
+
+ +
+ doc-backlink + +
+

A link that allows the user to return to a related location in the content (e.g., from a footnote to its reference or from a glossary definition to where a term is used).

+ +
+<aside id="fn01" role="doc-footnote">
+   <a role="doc-backlink" href="#fnref01">1.</a>
+   Additional results of this study and
+   similar studies can be found at …
+</aside>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-backlink: +
CharacteristicValue
Is Abstract: 
Superclass Role:link
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From: +
    +
  • contents
  • +
  • author
  • +
+
Accessible Name Required:True
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-biblioentry + +
+

+ [Deprecated in DPUB-ARIA 1.1] A single reference to an external source in a bibliography. A biblioentry typically provides more detailed information than its reference(s) in the content + (e.g., full title, author(s), publisher, publication date, etc.). +

+ +

+ The doc-biblioentry role was designed for use as a list item, but due to clarifications in the WAI-ARIA specification, it is not valid as a child of the + list role. As the doc-bibliography role already identifies a section of bibliography entries, authors are instead advised to use the list and + listitem roles when native HTML elements cannot be used to structure the entries. +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-biblioentry: +
CharacteristicValue
Is Abstract: 
Superclass Role:
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role:
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:True
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-bibliography + +
+

A list of external references cited in the work, which may be to print or digital sources.

+ +

+ The element carrying the doc-bibliography role MUST contain at least one descendant list containing the bibliography entries (if the entries are + subdivided, for example alphabetically, the element would contain more than one list). +

+ +

Authors MUST NOT apply the doc-bibliography role directly to the list containing the entries.

+ +
+<section role="doc-bibliography">
+   <h2>Select Bibliography</h2>
+   <ul>
+      …
+   </ul>
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-bibliography: +
CharacteristicValue
Is Abstract: 
Superclass Role:landmark
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-biblioref + +
+

A reference to a bibliography entry.

+ +
+<p>
+   As <a role="doc-biblioref"
+      href="#b8cab5dd-bc24-459c-9858-7afa9da69b64">Steinbeck</a>
+   says in his great novel …
+</p>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-biblioref: +
CharacteristicValue
Is Abstract: 
Superclass Role:link
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From: +
    +
  • contents
  • +
  • author
  • +
+
Accessible Name Required:True
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-chapter + +
+

A major thematic section of content in a work.

+ +
+<section role="doc-chapter">
+   <h2>Chapter 1. Loomings.</h2>
+   …
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-chapter: +
CharacteristicValue
Is Abstract: 
Superclass Role:landmark
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-colophon + +
+

A short section of production notes particular to the edition (e.g., describing the typeface used), often located at the end of a work.

+ +
+<section role="doc-colophon" aria-label="About the type">
+   <p>This publication was set using … </p>
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-colophon: +
CharacteristicValue
Is Abstract: 
Superclass Role:section
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-conclusion + +
+

A concluding section or statement that summarizes the work or wraps up the narrative.

+ +
+<section role="doc-conclusion">
+   <h2>Summary</h2>
+   <p>A central task in feminist scholarship is to expose and dismantle the stereotypes … </p>
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-conclusion: +
CharacteristicValue
Is Abstract: 
Superclass Role:landmark
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-cover + +
+

An image that sets the mood or tone for the work and typically includes the title and author.

+ +
<img role="doc-cover" src="coverimage.jpg" alt="A Room of One's Own by Virginia Woolf"/>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-cover: +
CharacteristicValue
Is Abstract: 
Superclass Role:img
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-credit + +
+

An acknowledgment of the source of integrated content from third-party sources, such as photos. Typically identifies the creator, copyright, and any restrictions on reuse.

+ +
+<p role="doc-credit">
+   Page 62, Table 3.1 from <cite>“Economic Foundations of Cost-Effectiveness Analysis”</cite>
+   by A. M. Garber and C. E. Phelps …
+</p>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-credit: +
CharacteristicValue
Is Abstract: 
Superclass Role:section
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-credits + +
+

A collection of credits.

+ +
+<section role="doc-credits">
+   <h2>Photo Credits</h2>
+   …
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-credits: +
CharacteristicValue
Is Abstract: 
Superclass Role:landmark
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-dedication + +
+

An inscription at the front of the work, typically addressed in tribute to one or more persons close to the author.

+ +
<p role="doc-dedication">To my family, without whom this would have never been possible.</p>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-dedication: +
CharacteristicValue
Is Abstract: 
Superclass Role:section
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-endnote + +
+

[Deprecated in DPUB-ARIA 1.1] One of a collection of notes that occur at the end of a work, or a section within it, that provides additional context to a referenced passage of text.

+ +

+ The doc-endnote role was designed for use as a list item, but due to clarifications in the WAI-ARIA specification, it is not valid as a child of the + list role. As the doc-endnotes role already identifies a section of endnotes, authors are instead advised to use the list and + listitem roles when native HTML elements cannot be used to structure the entries. +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-endnote: +
CharacteristicValue
Is Abstract: 
Superclass Role:listitem
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role:
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required: 
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-endnotes + +
+

A collection of notes at the end of a work or a section within it.

+ +

+ The element carrying the doc-endnotes role MUST contain at least one descendant list containing the endnotes (if the notes are subdivided, for example + by chapter, the element would contain more than one list). +

+ +

Authors MUST NOT declare elements with the role doc-footnote within the endnotes as it is redundant with the implied role.

+ +

Authors MUST NOT apply the doc-endnotes role directly to the list containing the endnotes.

+ +
+<section role="doc-endnotes">
+   <h2>Notes</h2>
+   <ol>
+      <li id="6baa07af">
+         <p>Additional results of this study can be found at … </p>
+      </li>
+      <li id="7b2c0555">
+         <p>…</p>
+      </li>
+      …
+   </ol>
+</section>
+ +
+<section role="doc-endnotes">
+   <h2>Notes</h2>
+   <section>
+      <h3>Canto I</h3>
+      <div role="list>
+         <div role="listitem">
+            <p>1. The use of alliteration here … </p>
+         </div>
+         …
+      </div>
+   </section>
+   …
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-endnotes: +
CharacteristicValue
Is Abstract: 
Superclass Role:landmark
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-epigraph + +
+

A quotation set at the start of the work or a section that establishes the theme or sets the mood.

+ +
+<blockquote role="doc-epigraph">
+   <p>“Would you tell me please, which way I ought to go from here?”</p>
+   <p>“That depends a good deal on where you want to get to,” said the cat.</p>
+</blockquote>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-epigraph: +
CharacteristicValue
Is Abstract: 
Superclass Role:section
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-epilogue + +
+

A concluding section of narrative that wraps up or comments on the actions and events of the work, typically from a future perspective.

+ +
+<section role="doc-epilogue">
+   <header>
+      <h2>Epilogue</h2>
+      <p>SPOKEN BY PROSPERO</p>
+   </header>
+   <p>Now my charms are all o'erthrown, …</p>
+   …
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-epilogue: +
CharacteristicValue
Is Abstract: 
Superclass Role:landmark
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-errata + +
+

A set of corrections discovered after initial publication of the work, sometimes referred to as corrigenda.

+ +
+<section role="doc-errata">
+   <h2>Corrections</h2>
+   …
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-errata: +
CharacteristicValue
Is Abstract: 
Superclass Role:landmark
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-example + +
+

An illustration of a key concept of the work, such as a code listing, case study or problem.

+ +
+<figure role="doc-example">
+   <figcaption>Example 1 — Hello World!</figcaption>
+   …
+</figure>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-example: +
CharacteristicValue
Is Abstract: 
Superclass Role:figure
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-footnote + +
+

Ancillary information, such as a citation or commentary, that provides additional context to a referenced passage of text.

+ +

+ The doc-footnote role is only for representing individual notes that occur within the body of a work. For collections of notes that occur at the end + of a section, see doc-endnotes. +

+ +
+<aside id="6baa07af" role="doc-footnote">
+   * Additional results of this study and similar studies can be found at …
+</aside>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-footnote: +
CharacteristicValue
Is Abstract: 
Superclass Role:section
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required: 
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-foreword + +
+

An introductory section that precedes the work, typically not written by the author of the work.

+ +
+<section role="doc-foreword">
+   <h2>Foreword</h2>
+   …
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-foreword: +
CharacteristicValue
Is Abstract: 
Superclass Role:landmark
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-glossary + +
+

A brief dictionary of new, uncommon, or specialized terms used in the content.

+ +

The structure of a glossary SHOULD make it possible for end users to identify each term and associated definition (e.g., using the [[HTML]] dfn element).

+ +
+<section role="doc-glossary" aria-label="glossary">
+   <dl>
+      …
+      <dt id="bcc0f155"><dfn>Credit default swap</dfn></dt>
+      <dd>
+         A credit default swap effectively insures against
+         default by a borrower.
+      </dd>
+      …
+   </dl>
+</section>
+ +
+<section role="doc-glossary" aria-labelledby="glosshd">
+   <h2 id="glosshd">Glossay of Technical Terms</h2>
+   <ul>
+      <li id="gtt00110001"><dfn>algorithm</dfn> A set of rules …</li>
+      …
+   </ul>
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-glossary: +
CharacteristicValue
Is Abstract: 
Superclass Role:landmark
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-glossref + +
+

A reference to a glossary definition.

+ +
+<p>
+   This is indicated in the cost of a
+   <a href="#bcc0f155" role="doc-glossref">credit default swap</a> …
+</p>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-glossref: +
CharacteristicValue
Is Abstract: 
Superclass Role:link
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From: +
    +
  • contents
  • +
  • author
  • +
+
Accessible Name Required:True
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-index + +
+

A navigational aid that provides a detailed list of links to key subjects, names and other important topics covered in the work.

+ +
+<section role="doc-index">
+   <h2>Index</h2>
+   <section>
+      <h2>A</h2>
+      <ul>
+         <li>A/B testing, <a href="chapter03.xhtml#page230">230</a></li>
+         …
+      </ul>
+   </section>
+   …
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-index: +
CharacteristicValue
Is Abstract: 
Superclass Role: + navigation +
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-introduction + +
+

A preliminary section that typically introduces the scope or nature of the work.

+ +
+<section role="doc-introduction">
+   <p>Everyone has some experience with marketing … </p>
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-introduction: +
CharacteristicValue
Is Abstract: 
Superclass Role:landmark
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-noteref + +
+

A reference to a footnote or endnote, typically appearing as a superscripted number or symbol in the main body of text.

+ +
<p> … as studies have shown.<a href="#fn01" id="fnref01" role="doc-noteref">[1]</a></p>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-noteref: +
CharacteristicValue
Is Abstract: 
Superclass Role:link
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From: +
    +
  • contents
  • +
  • author
  • +
+
Accessible Name Required:True
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-notice + +
+

Notifies the user of consequences that might arise from an action or event. Examples include warnings, cautions and dangers.

+ +
+<section role="doc-notice">
+   <img src="warning.png" alt="warning icon"/>
+   <p>Just because you can include a font doesn’t mean you should.
+      Think carefully about readability. Also, be respectful of intellectual property.
+      There are many excellent free open-source fonts available.</p>
+</section>
+ +

Authors SHOULD include a label when the notice needs to be navigable to.

+ +
+<div role="doc-notice" aria-label="Explosion Risk">
+   <p><em>Danger!</em> Mixing reactive materials may cause an explosion.</p>
+</div>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-notice: +
CharacteristicValue
Is Abstract: 
Superclass Role:note
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-pagebreak + +
+

A separator denoting the position before which a break occurs between two contiguous pages in a statically paginated version of the content.

+ +

+ Page break locators are also commonly used to provide static markers in purely digital publications (i.e., where no statically paginated equivalent exists). These markers provide + consistent navigation regardless of differences in font and screen size that can otherwise affect the dynamic pagination of the content. +

+ +

+ Authors MUST ensure the name of the page break is an end user-consumable page number that identifies the page that is beginning so that assistive technologies can announce the page as + needed (e.g., in a command to identify the current page). +

+ +

+ The page break locator MUST precede the content of the page it identifies. If a page includes a header (doc-pageheader), the page break locator SHOULD be located before it, + even if the header includes a visible page number. The page break locator may be used with the page number in a page header if the number precedes all other content in the header. +

+ +

+ When reproducing page break locators from a static page equivalent, it is sometimes the case that words are hyphenated across pages. When this happens, the page break locator SHOULD be + placed either before or after the word to ensure it does not interfere with text-to-speech playback. +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-pagebreak: +
CharacteristicValue
Is Abstract: 
Superclass Role:separator
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From: +
    +
  • contents
  • +
  • author
  • +
+
Accessible Name Required:True
Inherits Name Required:
Children Presentational:True
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-pagelist + +
+

A navigational aid that provides a list of links to the page breaks in the content.

+ +
+<nav role="doc-pagelist">
+   <h2>Pages</h2>
+   <ol>
+      <li><a href="chapter.xhtml#Page_1">1</a></li>
+      <li><a href="chapter.xhtml#Page_2">2</a></li>
+      …
+   </ol>
+</nav>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-pagelist: +
CharacteristicValue
Is Abstract: 
Superclass Role:navigation
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-pagefooter + +
+

+ A section of text appearing at the bottom of a page that provides context about the current work and location within it. The page footer is distinct from the body text and normally + follows a repeating template that contains (possibly truncated) items such as the document title, current section, author name(s), and page number. +

+ +

The doc-pagefooter role MUST be used on every instance of the page footer.

+ +

The doc-pagefooter MUST NOT contain the doc-pagebreak.

+ +

The doc-pagefooter MUST NOT contain footnotes (doc-footnote).

+ +

Assistive technologies MAY allow the user to read the document content continuously without interruption from the page footer.

+ +
+<section role="doc-pagefooter">
+   <div>Leo Tolstoy</div>
+   <div>321</div>
+   …
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-pagefooter: +
CharacteristicValue
Is Abstract: 
Superclass Role:section
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:prohibited
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-pageheader + +
+

+ A section of text appearing at the top of a page that provides context about the current work and location within it. The page header is distinct from the body text and normally follows + a repeating template that contains (possibly truncated) items such as the document title, current section, author name(s), and page number. +

+ +

The doc-pageheader role MUST be used on every instance of the page header.

+ +

Assistive technologies MAY allow the user to read the document content continuously without interruption from the page header.

+ +
+<section role="doc-pageheader">
+   <div>War and Peace</div>
+   <div>321</div>
+   …
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-pageheader: +
CharacteristicValue
Is Abstract: 
Superclass Role:section
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:prohibited
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-part + +
+

A major structural division in a work that contains a set of related sections dealing with a particular subject, narrative arc, or similar encapsulated theme.

+ +
+<section role="doc-part">
+   <h2>Part One</h2>
+   <section role="doc-chapter">
+      <h2>Chapter 1</h2>
+      …
+   </section>
+   …
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-part: +
CharacteristicValue
Is Abstract:
Superclass Role:landmark
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-preface + +
+

An introductory section that precedes the work, typically written by the author of the work.

+ +
+<section role="doc-preface">
+   <h2>Introduction:A Guide to the Galaxy</h2>
+   …
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-preface: +
CharacteristicValue
Is Abstract: 
Superclass Role:landmark
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-prologue + +
+

An introductory section that sets the background to a work, typically part of the narrative.

+ +
+<section role="doc-prologue">
+   <header>
+      <h2>Prologue</h2>
+      <p>Chorus</p>
+   </header>
+   <p>Two households, both alike in dignity, …</p>
+   …
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-prologue: +
CharacteristicValue
Is Abstract: 
Superclass Role:landmark
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-pullquote + +
+

A distinctively placed or highlighted quotation from the current content designed to draw attention to a topic or highlight a key point.

+ +

+ Unlike a passage quoted from another source, a pullquote is a direct repetition of text in the current document. As a result, authors must ensure that the presentational occurrence is + hidden from users of assistive technologies (e.g., using the aria-hidden attribute). +

+ +

+ The following example shows the identification of a pullquote that will be presented elsewhere (e.g., via a script). In this case, the pullquote is not hidden as the marked text is not + presentational. +

+ +
+<p>… I may die, but first you, my tyrant and tormentor, shall curse the sun that gazes on your misery.
+   <span id="pq01" role="doc-pullquote">Beware, for I am fearless and therefore powerful.</span>
+   I will watch with the wiliness of a snake, that I may sting with its venom. … </p>
+ +

The next example shows a pullquote that duplicates the text. This quote is hidden because it is for presentational purposes only.

+ +
+<p>… Better habits pave the way to growth, and growth leads to greater happiness.</p>
+<aside role="doc-pullquote" aria-hidden="true">
+   Better habits pave the way to growth, and growth leads to greater happiness.
+</aside>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-pullquote: +
CharacteristicValue
Is Abstract: 
Superclass Role:section
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role:
+
+ +
+ doc-qna + +
+

A section of content structured as a series of questions and answers, such as an interview or list of frequently asked questions.

+ +
+<section role="doc-qna">
+   <h2>Interview with the Author</h2>
+   <dl>
+      <dt>Q: When did you begin writing this book?</dt>
+      <dd>A: I first got the idea …</dd>
+      …
+   </dl>
+</section>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-qna: +
CharacteristicValue
Is Abstract: 
Superclass Role:section
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-subtitle + +
+

An explanatory or alternate title for the work, or a section or component within it.

+ +
+<header>
+   <h2>Chapter 2 The Battle</h2>
+   <p role="doc-subtitle">Once more unto the breach</p>
+</header>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-subtitle: +
CharacteristicValue
Is Abstract: 
Superclass Role:sectionhead
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From: +
    +
  • contents
  • +
  • author
  • +
+
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-tip + +
+

Helpful information that clarifies some aspect of the content or assists in its comprehension.

+ +
+<aside role="doc-tip">
+   <h3>Tip</h3>
+   <p>You can assign a variable a new value that is the result
+      of an expression involving its previous value.</p>
+</aside>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-tip: +
CharacteristicValue
Is Abstract: 
Superclass Role:note
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ doc-toc + +
+

+ A navigational aid that provides an ordered list of links to the major sectional headings in the content. A table of contents may cover an entire work, or only a smaller section of it. +

+ +
+<nav role="doc-toc">
+   <h2>Contents</h2>
+   <ol role="directory">
+      <li><a href="preface_001.xhtml">Original Transcriber’s Notes:</a></li>
+      <li><a href="introduction_001.xhtml">ETYMOLOGY.</a></li>
+      <li><a href="epigraph_001.xhtml">EXTRACTS (Supplied by a Sub-Sub-Librarian).</a></li>
+      <li><a href="chapter_001.xhtml">Chapter 1. Loomings.</a></li>
+      …
+   </ol>
+</nav>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics of + doc-toc: +
CharacteristicValue
Is Abstract: 
Superclass Role:navigation
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:False
Inherits Name Required:
Children Presentational:
Inherits Presentational: 
Implicit Value for Role: 
+
+
+
+
+

Security Considerations

+ +

This specification introduces no new security considerations.

+
+
+

Privacy Considerations

+ +

+ In accordance with Web Platform Design Principles, this specification provides no programatic + interface to determine if information is being used by assistive technologies. However, this specificaton does allow an author to present different information to users of assistive + technologies from the information available to users who do not use assistive technologies. This is possible using many features of the DPUB-ARIA specification, just as this is possible using + many other parts of the web technology stack. This content disparity could be abused to perform active fingerprinting of users of assistive + technologies. +

+
+
+

Change Log

+ +
+

Substantive changes since the last Working Draft

+ + +
+ +
+

Substantive changes since the DPUB-ARIA 1.0 Recommendation

+ + +
+
+
+

Acknowledgments

+ +

The following people contributed to the development of this document:

+ + + +
+
+ + diff --git a/graphics-aam/.gitattributes b/graphics-aam/.gitattributes new file mode 100644 index 000000000..e5237fb0f --- /dev/null +++ b/graphics-aam/.gitattributes @@ -0,0 +1,12 @@ +# Ensure all text files do not accidentally become a CRLF file. +# Agreed upon during 5 August 2015 PF Editors concall. +# To override or prevent this behavior see the following sections. +* text eol=lf + +# Files that will always have CRLF line endings. Example: +# my-special-spec.html eol=crlf + +# Ensure non-text files don't get accidentally swept up by above. +*.png binary +*.jpg binary +*.zargo binary diff --git a/graphics-aam/.gitignore b/graphics-aam/.gitignore new file mode 100644 index 000000000..ead8624e4 --- /dev/null +++ b/graphics-aam/.gitignore @@ -0,0 +1,219 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +<<<<<<< HEAD +*.py[co] +======= +*.py[cod] +>>>>>>> a51b9db2d4ebd2968f49781325ba3e4741f0127f + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg diff --git a/graphics-aam/README.md b/graphics-aam/README.md new file mode 100644 index 000000000..e30963335 --- /dev/null +++ b/graphics-aam/README.md @@ -0,0 +1,4 @@ + +# Specification 'graphics-aam' + +This is the repository for Graphics Accessibility API Mappings (graphics-aam), which is part of the [ARIA suite](https://www.w3.org/WAI/ARIA/deliverables). General information about editing specifications is in the [main ARIA repository readme](https://github.com/w3c/aria/). \ No newline at end of file diff --git a/graphics-aam/index.html b/graphics-aam/index.html new file mode 100644 index 000000000..2d96b7cef --- /dev/null +++ b/graphics-aam/index.html @@ -0,0 +1,527 @@ + + + + + Graphics Accessibility API Mappings + + + + + + + + + +
+

+ The Graphics Accessibility API Mappings defines how user agents map the WAI-ARIA Graphics Module [[GRAPHICS-ARIA-1.0]] markup to platform + accessibility APIs. It is intended for user agent developers responsible for accessibility in their user agent so that they can support the accessibility of graphics such as that created for [[SVG]] or + [[HTML52]]. +

+

+ The implementation of this specification in user agents enables authors to produce more accessible graphics by conveying common graphics semantics to assistive technologies. It provides + Accessibility API Mapping guidance for the roles defined in the WAI-ARIA Graphics Module [[GRAPHICS-ARIA-1.0]]. +

+

+ The Graphics Accessibility API Mappings is part of the + WAI-ARIA suite described in the + WAI-ARIA Overview. +

+
+
+

+ This is an Editor's Draft of Graphics Accessibility API Mappings 1.0 by the SVG Accessibility Task Force, a joint task force of the + Accessible Rich Internet Applications Working Group and the SVG Working Group. It provides guidance + for mapping roles in WAI-ARIA Graphics Module [[GRAPHICS-ARIA-1.0]] to accessibility APIs, and complements SVG-specific mappings in the + SVG Accessibility API Mappings [[SVG-AAM-1.0]]. It extends Core Accessibility Mappings 1.1 [[CORE-AAM-1.1]], and is part + of a suite of similar technology-specific Accessibility API Mappings specifications. +

+

Feedback on any aspect of the specification is accepted. For this publication, the SVG Accessibility Task Force particularly seeks feedback on the following questions:

+ +

+ To comment, file an issue in the W3C graphics-aam GitHub repository. If this is not feasible, send email to + public-aria@w3.org (comment archive). + In-progress updates to the document may be viewed in the publicly visible editors' draft. +

+
+
+

Introduction

+

The Graphics Accessibility API Mappings specification provides role mappings for the roles in the WAI-ARIA Graphics Module [[GRAPHICS-ARIA-1.0]].

+

+ For web documents and applications, the essential semantic information is encapsulated within the Document Object Model (DOM). Assistive technologies + obtain this information from the user agent, which maps elements and attributes to the platform Accessibility API. +

+

+ The original suite of element semantics defined by + WAI-ARIA 1.0 only considered graphics as individual embedded images, with no interactivity or meaningful semantic structure. It was + therefore not sufficient for communicating complex graphics, such as labelled diagrams or data charts, or for interactive graphics. The WAI-ARIA Graphics Module defines a core set of three + roles that can convey the structure of a graphic. This specification defines how user agents should expose those roles to the accessibility APIs currently in use, so that the + semantic information is available to assistive technologies that use those APIs. +

+ +

+ For an introduction to WAI-ARIA, see the + WAI-ARIA Overview. It is part of a set of resources that define and support the + WAI-ARIA specification, including the following documents: +

+ +
+
+

Conformance

+

+ The main content of this specification is normative and defines requirements that impact conformance claims. Introductory material, appendices, sections marked as "non-normative" and their + subsections, diagrams, examples, and notes are informative (non-normative). Non-normative material provides advisory information to help interpret the guidelines but does not create + requirements that impact a conformance claim. +

+

+ Normative sections provide requirements that user agents must follow for an implementation to conform to this specification. The keywords MUST, + MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, + RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described in + Keywords for use in RFCs to indicate requirement levels [[!RFC2119]]. RFC-2119 keywords are formatted in uppercase and + contained in an element with class="rfc2119". When the keywords shown above are used, but do not share this format, they do not convey formal information in the RFC 2119 sense, + and are merely explanatory, i.e., informative. As much as possible, such usages are avoided in this specification. +

+

Normative sections provide requirements that authors, user agents and assistive technologies MUST follow for an implementation to conform to this specification.

+

+ Non-normative (informative) sections provide information useful to understanding the specification. Such sections may contain examples of recommended practice, but it is not required to follow + such recommendations in order to conform to this specification. +

+
+
+

Mapping WAI-ARIA to Accessibility APIs

+
+

General rules for exposing WAI-ARIA semantics

+

This section MUST conform to General rules for exposing WAI-ARIA semantics in [[!CORE-AAM-1.1]].

+
+
+
+

Conflicts between native markup semantics and WAI-ARIA

+

User agents MUST conform to Conflicts between native markup semantics and WAI-ARIA in [[!CORE-AAM-1.1]].

+
+
+

Exposing attributes that do not directly map to accessibility API properties

+

+ User agents MUST conform to + Exposing attributes that do not directly map to accessibility API properties in + [[!CORE-AAM-1.1]]. +

+
+
+

Role mapping

+

+ Platform accessibility APIs traditionally have had a finite set of predefined roles that + are expected by assistive technologies on that platform and only one or two roles may be exposed. In contrast, + WAI-ARIA allows multiple roles to be specified as an ordered set of space-separated valid role tokens. The additional roles are + fallback roles similar to the concept of specifying multiple fonts in case the first choice font type is not supported. +

+
+

General Rules

+

+ User agents MUST conform to the Role Mapping General Rules accessibility API computational + requirements in [[!CORE-AAM-1.1]]. +

+
+
+

Role Mapping Table

+

+ This section defines how roles in graphics map to platform accessibility APIs based on their native host language semantics and when WAI-ARIA roles are applied. This section refers directly + to the Core Accessibility API Mappings specification. +

+

graphics-document

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Graphics-ARIA Specification + graphics-document +
Computed Role + graphics-document +
MSAA + IAccessible2 Role + Other IAccessible2 Features +

ROLE_SYSTEM_DOCUMENT + STATE_SYSTEM_READONLY

+

IAccessible2: Object attribute xml-roles:graphics-document.

+
UIA Control Type + Other FeaturesControl Type: 'Document'.
ATK/AT-SPI Role +

Expose ROLE_DOCUMENT_FRAME and object attribute xml-roles:graphics-document.

+
AXAPI + AXRole: AXGroup
+ AXSubrole: AXDocument
+ AXRoleDescription: 'document' +
+

graphics-object

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Graphics-ARIA Specification + graphics-object +
Computed Role + graphics-object +
MSAA + IAccessible2 Role + Other IAccessible2 Features + ROLE_SYSTEM_GROUPING + +

IAccessible2: Object attribute xml-roles:graphics-object.

+
UIA Control Type + Other FeaturesControl Type: 'Group'.
ATK/AT-SPI Role +

Expose ROLE_PANEL and object attribute xml-roles:graphics-object.

+
AXAPI + AXRole: AXGroup
+ AXSubrole: <nil>
+ AXRoleDescription: 'group' +
+

graphics-symbol

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Graphics-ARIA Specification + graphics-symbol +
Computed Role + graphics-symbol +
MSAA + IAccessible2 Role + Other IAccessible2 Features + ROLE_SYSTEM_GRAPHIC +

IAccessible2: Object attribute xml-roles:graphics-symbol.

+
UIA Control Type + Other FeaturesControl Type: 'Image'.
ATK/AT-SPI Role +

Expose ROLE_IMAGE and object attribute xml-roles:graphics-symbol.

+
AXAPI + AXRole: AXImage
+ AXSubrole: <nil>
+ AXRoleDescription: 'image' +
+
+
+
+

Change Log

+

The full commit history to Graphics Accessibility API Mappings 1.0 is available.

+ +
+

Substantive changes since the First Public Working Draft

+ +
+
+
+

Acknowledgments

+

The following people contributed to the development of this document.

+ +
+

Participants active in the SVG accessibility task force at the time of publication

+ +
+
+

Participants active in the ARIA WG at the time of publication

+ +
+
+
+ + diff --git a/graphics-aria/.gitattributes b/graphics-aria/.gitattributes new file mode 100644 index 000000000..e5237fb0f --- /dev/null +++ b/graphics-aria/.gitattributes @@ -0,0 +1,12 @@ +# Ensure all text files do not accidentally become a CRLF file. +# Agreed upon during 5 August 2015 PF Editors concall. +# To override or prevent this behavior see the following sections. +* text eol=lf + +# Files that will always have CRLF line endings. Example: +# my-special-spec.html eol=crlf + +# Ensure non-text files don't get accidentally swept up by above. +*.png binary +*.jpg binary +*.zargo binary diff --git a/graphics-aria/.gitignore b/graphics-aria/.gitignore new file mode 100644 index 000000000..ead8624e4 --- /dev/null +++ b/graphics-aria/.gitignore @@ -0,0 +1,219 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +<<<<<<< HEAD +*.py[co] +======= +*.py[cod] +>>>>>>> a51b9db2d4ebd2968f49781325ba3e4741f0127f + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg diff --git a/graphics-aria/README.md b/graphics-aria/README.md new file mode 100644 index 000000000..471c54d58 --- /dev/null +++ b/graphics-aria/README.md @@ -0,0 +1,4 @@ + +# Specification 'graphics-aria' + +This is the repository for Graphics WAI-ARIA Module (graphics-aria), which is part of the [ARIA suite](https://www.w3.org/WAI/ARIA/deliverables). General information about editing specifications is in the [main ARIA repository readme](https://github.com/w3c/aria/). \ No newline at end of file diff --git a/graphics-aria/graphics2.html b/graphics-aria/graphics2.html new file mode 100644 index 000000000..0e42a3e74 --- /dev/null +++ b/graphics-aria/graphics2.html @@ -0,0 +1,2734 @@ + + + + +WAI-ARIA Graphics Module 2 + + + + + + + + + + + +
+

Assistive technologies need semantic information about widgets, structures and behaviors to convey appropriate information to persons with disabilities. This specification defines a [[!WAI-ARIA]] module of roles, states and properties specific to web graphics. These semantics allow an author to convey user interface behaviors and structural information to assistive technologies and to enable semantic navigation, styling and interactive features used by readers. It is expected this will complement [[HTML5]] and [[SVG2]].

+

This document is part of the WAI-ARIA suite described in the WAI-ARIA Overview.

+
+
+

Please record issues on this specification through the Github W3C/aria issue tracker, using the prefix "Graphics" for any issue.

+
+
+
+
+

Introduction

+

WAI-ARIA is a technical specification that defines a common host language semantic accessibility API and framework that enables web browsers to map the accessibility semantics in web content to platform-specific accessibility APIs. This enables web content to be interoperable with platform assistive technologies similar to native platform applications without platform dependencies.

+

This specification is a modular extension of WAI-ARIA designed to support graphics. The goals of this specification include:

+ +

For a more detailed explanation of WAI-ARIA please refer to the WAI-ARIA Introduction and how it applies to Rich Internet Application Accessibility.

+ +
+

Target Audience

+

This specification defines a module of WAI-ARIA for graphics, including roles, states, properties and values. It impacts several audiences:

+ +

Each conformance requirement indicates the audience to which it applies.

+ +
+ +
+

User Agent Support

+

This module builds on the general User Agent support principles defined in [[!WAI-ARIA]] by also providing the ability for user agents to enhance the general user interface presented to readers.

+
+ +
+

Co-Evolution of WAI-ARIA and Host Languages

+

The Graphics WAI-ARIA module follows the model for co-evolution of WAI-ARIA and host languages defined in [[!WAI-ARIA]]. It is intended to augment semantics in supporting languages like [[HTML5]], [[!SVG2]] and EPUB, or to be used as an accessibility enhancement technology in other markup-based languages that do not explicitly include support for ARIA. It clarifies semantics to assistive technologies when authors create new types of objects, via style and script, that are not yet directly supported by the language of the page, because the invention of new types of objects is faster than standardized support for them appears in web languages.

+

It is not appropriate to create objects with style and script when the host language provides a semantic element for that type of objects. While WAI-ARIA can improve the accessibility of these objects, accessibility is best provided by allowing the user agent to handle the object natively. For example, it is not better to use a heading role on a div element than it is to use a native heading element, such as an h1.

+

It is expected that, over time, host languages will evolve to provide semantics for objects that currently can only be declared with this specification. This is natural and desirable, as one goal of WAI-ARIA is to help stimulate the emergence of more semantic and accessible markup. When native semantics for a given feature become available, it is appropriate for authors to use the native feature and stop using this module for that feature. Legacy content may continue to use the Graphics WAI-ARIA module, however, so the need for user agents to support it remains.

+

While specific features of this module may lose importance over time, the general possibility of the Graphics WAI-ARIA module to add semantics to web graphics or open web based standards, is expected to be a persistent need. Host languages may not implement all the semantics this module provides, and various host languages may implement different subsets of the features. New types of objects are continually being developed, and one goal of this specification is to provide a way to make such objects accessible, because authoring practices often advance faster than host language standards. In this way, this module and host languages both evolve together but at different rates.

+

Some host languages exist to create semantics for features other than the user interface. For example, SVG expresses the semantics behind production of graphical objects, not of user interface components that those objects may represent. Host languages such as these might, by design, not provide native semantics that map to this specification's features. In these cases, the Graphics WAI-ARIA module could be adopted as a long-term approach to add semantic information to these host languages.

+
+ +
+

Authoring Practices

+
+

Authoring Tools

+

Many of the requirements in the definitions of the WAI-ARIA and Graphics WAI-ARIA roles, states and properties can be checked automatically during the development process, similar to other quality control processes used for validating code. To assist authors who are creating graphics, can compare the semantic structure of Graphics WAI-ARIA roles from the DOM to that defined in this specification and notify the author of errors or simply create templates that enforce that structure.

+
+ +
+

Testing Practices and Tools

+

The accessibility of interactive content cannot be confirmed by static checks alone. Developers of interactive content should test for device-independent access to widgets and applications, and should verify accessibility API access to all content and changes during user interaction.

+
+
+ +
+

Assistive Technologies

+

Programmatic access to accessibility semantics is essential for assistive technologies. For more information, refer to the Assistive Technologies section in [[!WAI-ARIA]].

+
+
+
+

This specification indicates whether a section is normative or informative. Classifying a section as normative or informative applies to the entire section. A statement "This section is normative" or "This section is informative" applies to all sub-sections of that section.

+

Normative sections provide requirements that authors, user agents and assistive technologies MUST follow for an implementation to conform to this specification.

+

Informative sections provide information useful to understanding the specification. Such sections may contain examples of recommended practice, but it is not required to follow such recommendations in order to conform to this specification.

+
+
+

Important Terms

+
+
+
+

Graphics Roles

+

+ This section defines additions to the + WAI-ARIA + role taxonomy + and describes the characteristics and properties of all roles. + See ARIA Roles for descriptions + of the fields provided by this module. +

+

Authors are given the ability to influence what is presented to assistive technologies and to influence navigation through + the use of roles and properties. With graphics, there are many cases where presenting and navigating every element will make the + graphic harder to understand and use. Authors may mark elements for non-visual exclusion by assigning the role none. Graphics also + have situations where the author intent is ambiguous and the use of the property aria-type should be used to clarify the situation.

+

If an author does not want a user agent to non-visually present an element and does not want the + element included in navigaion then the element should be given a role of none. For example, in the case + an author does not want a chart's axis minor tick marks (tick lines without labels between tick marks with labels) + presented to assistive technologies since the minor tick marks would add significant noise without increasing comprehension, then the + author should assign the minor tick marks the role of none.

+ +

User agents are expected to use the aria-gtype property + for differentiating between graph features. Two elements with the + same role and the same semanatic parent and both elements having either no aria-gtype or the same aria-gtype + are defined as being part of the same feature. + Two elements with a the same role and the same semanatic parent but differing aria-gtype + are defined as being two separate features. +

+ + +
+

Definition of Roles

+

+ Below is an alphabetical list of the + WAI-ARIA + roles defined in this specification. + They would normally be used in combination with other roles + defined in [[WAI-ARIA]] + to annotate graphics within documents and rich internet applications. +

+ +

Placeholder for compact list of roles

+
+ +
+ graphics-annotation +
+

A type of guide object, usually a comment, explaination or note.

+
+
+  <g role="graphics-annotation" font-family="Arial" text-anchor="middle" font-size="12" >   
+    <text x="320" y="12.56" role="graphics-label">Sample map with two-level color coding.</text>   
+    <text x="320" y="26.56" role="graphics-label">The basic hue is set by the region, a categorical variable.</text>    
+    <text x="320" y="40.56" role="graphics-label">The color is then modified by a numeric variable. </text>    
+    <text x="320" y="54.56" role="graphics-label">See the color aesthetics of the element for the general technique. </text>   
+  </g>   
+         
+ + + + + Sample map with two-level color coding. + The basic hue is set by the region, a categorical + +variable. + The color is then modified by a numeric variable. + See the color aesthetics of the element for the general technique. + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Is Abstract:
Superclass Role:graphics-guide
Subclass Roles:
Base Concept:
Related Concepts:
Required Context Role:
Required Owned Elements:
Required States and Properties:
Supported States and Properties:aria-gtype
Inherited States and Properties:
Name From:author
Accessible Name Required:True
Inherits Name Required:
Children Presentational:
Inherits Presentational:
Implicit Value for Role:
+
+
+ +
+ graphics-axis +
+

A scale often used with charts to show the scale of a dimension (variable).

+

When a graph contains more than one axis, an author should distinguish between the + axes by using + the aria-gtype property. User agents will be expected to use the aria-gtype property + when presenting information to a user and for differentiating between graph features. Two elements with a + graphics-axis role with the same semanatic parent and no aria-gtype or the same aria-gtype are defined as being part of the same axis. + Two elements with a graphics-axis role with the same semanatic parent but differing aria-gtype + are defined as being two separate axes. +

+

Differentiating between axes using the aria-gtype can help users understand whether the axis is + the x, y or z axis and help them understand which variable/data column is associated with the axis. Differentiating between + axes using aria-gtype can also affect how keyboard users navigate through the axes. This level of control is + provided to authors so they can convey and control how user agents perceive axes given the author may need to present mulitple y + axis on opposite sides of the chart (ie left axis in inches, right axis in cm), clustered sets of axes, 3 or more dimension axes and aligned + axes shared by two charts in the same visualization.

+ +
+<g transform="translate(57 29)" role="graphics-axis" aria-gtype="y" aria-labelledby="yt" font-family="Arial">
+  <path fill="none" d="m0 0v353"/>
+  <text id="yt" x="176" y="-38" text-anchor="middle" font-weight="bold" transform="matrix(0-1 1 0 0 353)" >Sales
+  </text>
+  <g fill="none" role="none">
+   <path d="m0 353h-4.667"/>
+   <path d="m0 317.7h-4.667"/>
+   <path d="m0 282.4h-4.667"/>
+   <path d="m0 247.1h-4.667"/>
+   <path d="m0 211.8h-4.667"/>
+   <path d="m0 176.5h-4.667"/>
+   <path d="m0 141.2h-4.667"/>
+   <path d="m0 105.9h-4.667"/>
+   <path d="m0 70.6h-4.667"/>
+   <path d="m0 35.3h-4.667"/>
+   <path d="m0 0h-4.667"/>
+  </g>
+  <g fill="none" role="none">
+    <g text-anchor="end" font-size="12" rotate="0" role="none">
+      <text x="-7.667" y="357.06"  role="graphics-axistick">0</text>
+      <text x="-7.667" y="321.76"  role="graphics-axistick">50</text>
+      <text x="-7.667" y="286.46"  role="graphics-axistick">100</text>
+      <text x="-7.667" y="251.16"  role="graphics-axistick">150</text>  
+      <text x="-7.667" y="215.86"  role="graphics-axistick">200</text>
+      <text x="-7.667" y="180.56"  role="graphics-axistick">250</text>
+      <text x="-7.667" y="145.26"  role="graphics-axistick">300</text>
+      <text x="-7.667" y="109.96"  role="graphics-axistick">350</text>
+      <text x="-7.667" y="74.66"  role="graphics-axistick">400</text>
+      <text x="-7.667" y="39.36"  role="graphics-axistick">450</text>
+      <text x="-7.667" y="4.06"  role="graphics-axistick">500</text>
+    </g>
+  </g>
+</g>
+         
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Is Abstract:
Superclass Role:graphics-scale
Subclass Roles:
Base Concept:Chart axes
Related Concepts:
Required Context Role:
Required Owned Elements:
Required States and Properties:
Supported States and Properties: +
  • aria-categories
  • aria-gtype
  • aria-valuemin
  • aria-valuemax
+
Inherited States and Properties:
Name From:author
Accessible Name Required:True
Inherits Name Required:
Children Presentational:
Inherits Presentational:
Implicit Value for Role:
+ +
+
+ +
+ graphics-axistick +
+

A visible axis tick label.

+ +
+
+      <text x="-7.667" y="215.86"  role="graphics-axistick">200</text>
+          
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Is Abstract:
Superclass Role:graphics-axis
Subclass Roles:
Base Concept:Chart axes
Related Concepts:
Required Context Role:
Required Owned Elements:
Required States and Properties:
Supported States and Properties: +
  • aria-posinset
  • aria-setsize
+
Inherited States and Properties:
Name From:content
Accessible Name Required:False
Inherits Name Required:
Children Presentational: True
Inherits Presentational:
Implicit Value for Role:
+ +
+
+ +
+ graphics-datagroup +
+

A semantic group for data. Group elements that do not have semantic meaning, should use a role of none.

+

For example, the group containing the graphics-dataitems in a scatterplot + represents the data feature of the chart and should have the role graphics-datagroup.

+

For example, in a stacked bar chart, the group containing all the stacks should have a role of graphics-datagroup + since the group represents the data feature of the chart. + Each group containing a stack of bars should have a role of graphics-datagroup as they represent a semantic object which can contain + data related information like the sum for the stack.

+

For example, in a pie chart the group containing all the pie wedges should have the role graphics-datagroup as it represents the data feature of the chart. However, + if the group containing all the pie wedges, has two child groups that are only there for style inheirtance, for instance to convey text anchor position to their + children, + then the two child groups are not semantic groups and should have a role of none. +

+
+<g role="graphics-datagroup">  
+  <path d="m72.5 50.936h9v26.07h-9z" aria-label="270,000 shares traded on 7/28/80" role="graphics-dataitem" 
+    aria-setsize='4' aria-posinset='1' >  
+    <title>270,000 shares traded on 7/28/80</title>
+  </path>  
+  <path d="m111 37.48h9v39.52h-9z" aria-label="410,000 shares traded on 7/29/80"  role="graphics-dataitem" 
+    aria-setsize='4' aria-posinset='2' >    
+    <title>410,000 shares traded on 7/29/80</title>
+  </path>  
+  <path d="m149.5 23.514h9v53.49h-9z" aria-label="560,000 shares traded on 7/30/80" role="graphics-dataitem" 
+    aria-setsize='4' aria-posinset='3' >    
+    <title>560,000 shares traded on 7/30/80</title>
+  </path>  
+  <path d="m188 15.01h9v61.995h-9z" aria-label="630,000 shares traded on 7/31/80"  role="graphics-dataitem" 
+    aria-setsize='4' aria-posinset='4' >    
+    <title>630,000 shares traded on 7/31/80</title>
+  </path>  
+</g> 
+         
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Is Abstract:False
Superclass Role:group
Subclass Roles:
Base Concept:
Related Concepts:
Required Context Role:
Required Owned Elements:
Required States and Properties:
Supported States and Properties: +
  • aria-gtype
  • aria-posinset
  • aria-setsize
+
Inherited States and Properties:
Name From:author
Accessible Name Required:True
Inherits Name Required:
Children Presentational:
Inherits Presentational:
Implicit Value for Role:
+
+
+ +
+ graphics-dataitem +
+

An object that represents a single data row or a single data entity. A graphics-dataitem may be further split into child components if needed. + For example, a graphics-dataitem for a box and whisker plot may contain the components of the box and whisker (fence, box, median) and each of the components would + be a graphics-dataitem. A set of graphics-dataitem may be ordered. If ordered, aria-posinset may be used to convey order.

+

The role graphics-dataitem is usually associated with charts, graphs, infographics and data visualizations. + Other domains like technical drawings may prefer using the role graphics-symbol.

+ +
+  <path d="m188 15.01h9v61.995h-9z" aria-label="630,000 shares traded on 7/31/80"  role="graphics-dataitem">    
+    <title>630,000 shares traded on 7/31/80</title>
+  </path>  
+         
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Is Abstract:False
Superclass Role:graphics-object
Subclass Roles:
Base Concept:
Related Concepts:
Required Context Role:
Required Owned Elements:
Required States and Properties:
Supported States and Properties: +
  • aria-gtype
  • aria-posinset
  • aria-setsize
+
Inherited States and Properties:
Name From:author
Accessible Name Required:True
Inherits Name Required:
Children Presentational:
Inherits Presentational:
Implicit Value for Role:
+
+
+ +
+ graphics-dimensionline +
+

A line that defines the length of an object.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Is Abstract:False
Superclass Role:graphics-scale
Subclass Roles:
Base Concept:
Related Concepts:
Required Context Role:
Required Owned Elements:
Required States and Properties:
Supported States and Properties: + aria-gtype +
Inherited States and Properties:
Name From:author
Accessible Name Required:True
Inherits Name Required:
Children Presentational:
Inherits Presentational:
Implicit Value for Role:
+
+
+ +
+ graphics-document +
+

+ A graphics document contains complex content + that a user should be able to explore. + Similar to document, + the graphical document may contain interactive widgets, + but is not itself interactive. + User agents may intercept user input + for the purposes of navigation. + A graphics document is distinct from other documents + in that the visual layout of the content has semantic meaning. + Navigation methods may take this into consideration. +

+

+ Accessibility technologies that re-format a document + should avoid altering the layout of a graphical document. + For this reason, authors should limit the graphical document role + to regions for which layout has semantic meaning. + A collection of distinct graphics that can be re-arranged + without losing meaning + could instead be described as a graphics-figure + or a group. +

+

+ Future specifications are expected to define + sub-classes of this role + for particular types of graphical documents, + such as charts or maps. +

+

+ The editors have not finalized the name for this role. +

+

+ To support user agents and assistive technologies + based on the ARIA 1.0 specification, + authors may wish to include the document role + as a fallback value, + in the form role="graphics-document document". +

+
+<!-- An SVG diagram of an electrical circuit -->
+<svg xmlns="http://www.w3.org/2000/svg" 
+     width="400" height="200" viewBox="0 0 200 100"
+     role="graphics-document document" >
+     <title>A simple circuit</title>
+     <desc>A circuit with one source, one switch, and one load</desc>
+     <style type="text/css">
+        /* omitted */
+     </style>
+     <g id="battery-1" role="graphics-symbol img" 
+        aria-roledescription="source" 
+        aria-label="battery"
+        aria-flowto="switch-1" 
+        transform="translate(20,50)" >
+        <path d="M-15,-5 h30 M-5,5 h10" />
+     </g>
+     <path class="wire" d="M20,45 V20 H90"/>
+     <g id="switch-1" role="graphics-symbol img" 
+        aria-roledescription="switch" 
+        aria-label="single-pole switch"
+        aria-flowto="lightbulb-1" >
+        <path d="M90,20 L105,30" />
+        <circle class="connection" cx="90" cy="20" r="2" />
+        <circle class="connection" cx="110" cy="20" r="2" />
+     </g>
+     <!-- more wires and a light bulb --> 
+</svg>
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Is Abstract: 
Superclass Role:structure
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:True
Inherits Name Required:
Children Presentational:False
Inherits Presentational: 
Implicit Value for Role: 
+
+
+ +
+ graphics-figure +
+

+ A distinct perceivable section of the page, + that contributes essential meaning to the main page content, + but is not part of a continuous stream of surrounding text. + A graphics-figure can be shifted within the layout of the document + without disruption, + but it cannot be removed without losing meaning. +

+

+ A figure often has a visible caption. + It may be referenced from the surrounding text + using a hyperlink or a numbered label. + Figures will often contain graphical content. + However, other content types + with a similar position in the document structure, + such as labelled code samples or audio elements, + would also be figures. + Figures may be nested, + if the nested figures are also likely + to be referenced as discrete units within the page. +

+

+ The semantics of this role are intended to mirror + the native semantics of the + figure + element in [[HTML5]]. + It is expected that future versions of HTML + will make this the default semantic role for that element. +

+

+ To support user agents and assistive technologies + based on the ARIA 1.0 specification, + authors may wish to include the region role + as a fallback value, + in the form role="graphics-figure region". +

+
+<!-- Within an HTML 5 document -->
+<p><a href="#fig1">Figure 1</a> outlines the basic shape 
+    elements available in SVG.  As shown in 1(d), a rectangle element 
+    can have rounded corners, and can even be made to look like an ellipse.</p>
+<figure id="fig1" role="graphics-figure region">
+    <svg viewBox="0 0 160 170" role="none" 
+         font-size="14px">
+        <g role="graphics-figure" aria-labelledby="circle-label">
+            <circle cx="40" cy="30" r="25" />
+            <text id="circle-label" x="5" y="70"
+                  >a) Circle</text>
+        </g>
+        <!-- … -->
+        <g role="graphics-figure" aria-labelledby="roundrect-label"
+           transform="translate(80,80)">
+            <rect x="10" y="10" width="60" height="40" 
+                  ry="15" rx="20" />
+            <text id="roundrect-label" x="5" y="70"
+                  >d) Rounded
+            <tspan x="30" dy="1em">Rect</tspan></text>
+        </g>            
+    </svg>
+    <figcaption>Figure 1: The Basic SVG Shapes</figcaption>
+</figure>
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Is Abstract: 
Superclass Role:region
Subclass Roles: 
Base Concept: + HTML figure
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:True
Inherits Name Required:
Children Presentational:False
Inherits Presentational: 
Implicit Value for Role: 
+
+
+ +
+ graphics-edge +
+

A edge (connector) connects two data items, and may have a from/to relationship. + A edge may form a loop, that is the from and to may be the same item. graphics-edge + is the default role for the connector element.

+

+ This role won't appear in the final spec and is temporarily here for completeness during discussions. This role is tied to + the connector element, which won't make it into SVG 2. +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Is Abstract:False
Superclass Role:graphics-dataitem
Subclass Roles:
Base Concept:SVG Connector
Related Concepts:
Required Context Role:
Required Owned Elements:
Required States and Properties:
Supported States and Properties: + aria-gtype +
Inherited States and Properties:
Name From:author
Accessible Name Required:True
Inherits Name Required:
Children Presentational:
Inherits Presentational:
Implicit Value for Role:
+
+
+ + +
+ graphics-graticule +
+

A network of lines representing the earth's parallels of latitude and meridians of longitude.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Is Abstract:False
Superclass Role:graphics-guide
Subclass Roles:
Base Concept:
Related Concepts:
Required Context Role:
Required Owned Elements:
Required States and Properties:
Supported States and Properties: + aria-gtype +
Inherited States and Properties:
Name From:author
Accessible Name Required:True
Inherits Name Required:
Children Presentational:
Inherits Presentational:
Implicit Value for Role:
+
+
+ + +
+ graphics-grid +
+

A network of lines of constant value, usually associated with a value on an axis.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Is Abstract:False
Superclass Role:graphics-guide
Subclass Roles:
Base Concept:
Related Concepts:
Required Context Role:
Required Owned Elements:
Required States and Properties:
Supported States and Properties: + aria-gtype +
Inherited States and Properties:
Name From:author
Accessible Name Required:True
Inherits Name Required:
Children Presentational:
Inherits Presentational:
Implicit Value for Role:
+
+
+ graphics-guide +
+

A guide object used to help interpret the graphic.

+

Even though there are several subclasses of graphics-guide, + graphics-guide is not an abstract role as there are situations where a subclass doesn't + meet the authors need. When graphics-guide is used + the aria-roledescription property + can be used to name the guide type + separately from the name and description + for the particular instance of the guide. +

+ +

+ The preceeding paragraph is dependent on + aria-roledescription being incorporated + into the ARIA 1.1 specification. +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Is Abstract:False
Superclass Role:graphics-object
Subclass Roles:
Base Concept:
Related Concepts:
Required Context Role:
Required Owned Elements:
Required States and Properties:
Supported States and Properties: + aria-gtype +
Inherited States and Properties:
Name From:author
Accessible Name Required:True
Inherits Name Required:
Children Presentational:
Inherits Presentational:
Implicit Value for Role:
+
+
+ +
+ graphics-label +
+

A visible label.

+

If the author does not want the user to be able to navigate to the label, they should have + labeled object's aria-labelledby property reference the label and give the label a role of none +

+      <text x="-7.667" y="215.86"  role="graphics-label">200</text>
+         
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Is Abstract:False
Superclass Role:graphics-object
Subclass Roles:
Base Concept:
Related Concepts:
Required Context Role:
Required Owned Elements:
Required States and Properties:
Supported States and Properties: + aria-gtype +
Inherited States and Properties:
Name From:author
Accessible Name Required:True
Inherits Name Required:
Children Presentational:True
Inherits Presentational:
Implicit Value for Role:
+ +
+
+ +
+ graphics-legend +
+

A scale for data representation, commonly used on charts, maps, instructional drawings and the like. Legends may show any chart aesthetic (color, size, symbol, size, etc).

+
+
+ <g transform="translate(100)" role="graphics-legend" font-size="12" font-family="Arial,SanSerif" fill="transparent">  
+   <path stroke-width="1" d="m0 0h40v144h-40z"/>  
+   <path d="m16.5 1.5h7v14h-7z"/>   
+   <text x="20" y="12.56" text-anchor="middle" font-weight="bold" fill="#00f" role="graphics-title">brand    
+   </text>   
+   <g transform="translate(0 18)">   
+     <path d="m2.5 2.5h33v20h-33z"/>   
+     <path fill="#0089ce" stroke="#000" stroke-width="2"d="m2.5 2.5h20v20h-20z" role="graphics-symbol"/>   
+     <path d="m27.5 5.5h8v14h-8z"/>   
+     <text x="27.5" y="16.56" fill="#000" role="graphics-label">1    
+     </text>   
+   </g>  
+   <g transform="translate(0 18)">   
+      <path d="m2.5 27.5h33v20h-33z"/>   
+      <path fill="#7cbc4a" stroke="#000" stroke-width="2"d="m2.5 27.5h20v20h-20z" role="graphics-symbol"/>   
+      <path d="m27.5 30.5h8v14h-8z"/>   
+      <text x="27.5" y="41.56"  fill="#000" role="graphics-label">2    
+      </text>   
+   </g>  
+   <g transform="translate(0 18)">   
+     <path d="m2.5 52.5h33v20h-33z"/>   
+     <path fill="#d8c625" stroke="#000" stroke-width="2"d="m2.5 52.5h20v20h-20z" role="graphics-symbol"/>   
+     <path d="m27.5 55.5h8v14h-8z"/>   
+     <text x="27.5" y="66.56"  fill="#000" role="graphics-label">3    
+     </text>   
+   </g>  
+ </g>
+  
+         
+ + + + + + brand + + + + + + 1 + + + + + + + 2 + + + + + + + 3 + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Is Abstract:False
Superclass Role:graphics-scale
Subclass Roles:
Base Concept:
Related Concepts:
Required Context Role:
Required Owned Elements:
Required States and Properties:
Supported States and Properties: + aria-gtype +
Inherited States and Properties:
Name From:author
Accessible Name Required:True
Inherits Name Required:
Children Presentational:
Inherits Presentational:
Implicit Value for Role:
+
+
+ +
+ graphics-object +
+

+ A section of a graphical document + that represents a cohesive item or object + with component parts the user may wish to explore. + It is in contrast to a group of distinct related objects, + or an indivisible img or graphics-symbol component. +

+ +

+ The editors have not finalized the name for this role. +

+

+ To support user agents and assistive technologies + based on the ARIA 1.0 specification, + authors may wish to include the group role + as a fallback value, + in the form role="graphics-object group". +

+
+<g role="graphics-object group"
+   aria-labelledby="house-label"
+   transform="translate(100,325)">
+    <desc>A two-storey brick house, drawn with basic shapes.
+    </desc>
+    <!-- The house has a number of details worth calling out,
+         so it is a graphical object -->
+
+    <rect fill="firebrick" stroke="darkRed"
+          width="300" height="200" y="-200"
+          role="none" /><!-- the walls of the house are 
+            already described thoroughly,
+            so no role is required -->
+
+    <g role="img" aria-label="door"
+       transform="translate(30,-90)">
+        <desc>The brown door on the left side of the building
+            has a window and a round doorknob</desc>
+        <rect fill="darkKhaki" stroke="#632"
+              width="50" height="90"/>
+        <rect fill="lightSteelBlue" stroke="#632" stroke-width="4" 
+              x="5" y="5" width="40" height="30" />
+        <circle fill="gray" stroke="#444" stroke-width="0.7"
+                cx="10" cy="50" r="4" />
+    </g>
+
+    <g role="group" aria-label="windows"
+       fill="lightSteelBlue" stroke="#632" stroke-width="6">
+        <!-- The windows are distinct objects, 
+             grouped together with a common label -->
+        <g role="none" transform="translate(0,-85)">
+            <rect aria-label="first-floor window"
+                  x="100" width="25" height="45">
+                <desc>A small window beside the door</desc>
+            </rect>
+            <path aria-label="first-floor living-room window"
+                  d="M180,0h100v60h-100v-60z
+                     m30,0v60 m40,0v-60">
+                <desc>A large three-pane window fills
+                the rest of the first floor</desc>
+            </path>
+        </g>
+        <g role="none" transform="translate(0,-180)">
+            <!-- more windows on the second floor -->
+        </g>
+    </g>
+
+    <g aria-label="roof" role="graphics-object group"
+       transform="translate(0,-200)">
+        <desc>A peaked roof</desc>
+        <g aria-label="chimney" role="graphics-object">
+            <desc>The chimney has a puff of smoke
+            rising from it</desc>
+            <!-- The graphical object role allows for further
+             nested sub-components.
+             However, based on the default SVG API mappings,
+             these shapes, which have neither labels nor descriptions,
+             will be treated as presentation. -->
+            <rect fill="firebrick" stroke="darkRed"
+                  x="280" y="-60" width="20" height="60" />
+            <path fill="gray" fill-opacity="0.4"
+                  d="M280,-70c0-10 30-20 45-35
+                     c15-40 25,10 25,20 s-70,25 -70,15z" />
+        </g>
+
+        <polygon role="none" fill="#222"
+                 points="-20,2 150,-100 320,2" />
+    </g>
+
+    <text id="house-label"
+          font-family="cursive" font-size="36px" 
+          x="70" y="50">My House</text>
+</g>
+    
+    
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Is Abstract: 
Superclass Role:section
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From: +
    +
  • author
  • +
  • contents
  • +
+
Accessible Name Required:False
Inherits Name Required:
Children Presentational:False
Inherits Presentational: 
Implicit Value for Role: 
+
+
+ + +
+ graphics-scale +
+

A type of guide object, usually a reference for measuring.

+

Even though there are several subclasses of graphics-scale, + graphics-scale is not an abstract role as there are situations where a subclass doesn't + meet the authors need. When graphics-scale is used + the aria-roledescription property + can be used to name the guide type + separately from the name and description + for the particular instance of the guide. +

+ +

+ The preceeding paragraph is dependent on + aria-roledescription being incorporated + into the ARIA 1.1 specification. +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Is Abstract:False
Superclass Role:graphics-guide
Subclass Roles:
Base Concept:
Related Concepts:
Required Context Role:
Required Owned Elements:
Required States and Properties:
Supported States and Properties: + aria-gtype +
Inherited States and Properties:
Name From:author
Accessible Name Required:True
Inherits Name Required:
Children Presentational:
Inherits Presentational:
Implicit Value for Role:
+
+
+
+ graphics-symbol +
+

+ A graphic used to convey a simple meaning or category, + where the meaning is more important + than the particular visual appearance. + It may be a component of a larger structured graphic + such as a chart or map. + The symbol itself is an atomic object; + children are presentational. +

+

+ When used as part of a structured symbolic language, + the aria-roledescription property + can be used to name the symbol type + separately from the name and description + for the particular instance of the symbol. +

+

+ The preceeding paragraph is dependent on + aria-roledescription being incorporated + into the ARIA 1.1 specification. +

+

+ To support user agents and assistive technologies + based on the ARIA 1.0 specification, + authors may wish to include the img role + as a fallback value, + in the form role="graphics-symbol img", + if that is not already the default semantic role for the element. +

+
+<!-- Within an HTML document listing a restaurant menu -->
+<h2>Appetizers</h2>
+<ul>
+    <li> Spinach Salad with Strawberry & Almonds
+        <img role="graphics-symbol" title="Vegetarian" src="../assets/leaf.svg" />
+        <img role="graphics-symbol" title="Contains Nuts" src="../assets/peanut.svg" />
+    </li>
+    <li> Chicken Satay with Peanut Sauce
+        <img role="graphics-symbol" title="Contains Nuts" src="../assets/peanut.svg" />
+    </li>
+    <!-- … -->
+</ul>
+
+
+<!-- Within an SVG diagram of an electrical circuit -->
+<g id="lightbulb-1" role="graphics-symbol img" 
+   aria-roledescription="load" 
+   aria-label="lightbulb"
+   aria-describedby="lightbulb-1-label"
+   aria-flowto="battery-1" 
+   transform="translate(180,50)">
+    <text id="lightbulb-1-label"
+        x="-15" dy="0.5ex" text-anchor="end" >10W</text>
+    <circle r="10" />
+    <path d="M0,-10 C0,8 5,8 5,0 C5,-8 0,-8 0,10" />
+</g>
+
+
+
+
+
+<!-- Within an architectural blueprint-style SVG diagram -->
+<g role="graphics-symbol img">
+    <title>Door</title>
+    <desc>on West side of South wall</desc>
+    <line stroke-width="8" stroke="white" 
+          x1="50" y1="275" x2="150" y2="275"/>
+    <line stroke-width="4" stroke="#444" 
+          x1="50" y1="275" x2="125" y2="225"/>        
+</g>
+<!-- … -->
+<use xlink:href="#outlet" role="graphics-symbol img" 
+     x="5" y="130" width="40" height="40">
+    <title>Electrical outlet</title>
+    <desc>at center of West wall</desc>
+</use>
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Is Abstract: 
Superclass Role:img
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:True
Inherits Name Required:
Children Presentational:True
Inherits Presentational: 
Implicit Value for Role: 
+
+
+
+ graphics-timedata +
+

Something defined or marked by an instant of time or time interval.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Is Abstract:False
Superclass Role:graphics-dataitem
Subclass Roles:
Base Concept:
Related Concepts:
Required Context Role:
Required Owned Elements:
Required States and Properties:
Supported States and Properties:
Inherited States and Properties:
Name From:author
Accessible Name Required:True
Inherits Name Required:
Children Presentational:
Inherits Presentational:
Implicit Value for Role:
+
+
+ +
+ img +
+

+ The definitive role definition for img is img. +

+

The use of img in the graphics context is slightly different + than that used outside of it due to the semantics available for drawings. + An img can contain + multiple drawing objects or image files + that when viewed together give the impression of a single image. + However, an img represents an indivisible component + within a document for navigation purposes. + If the child elements are arranged + in a semantically rich structure + that users may wish to navigate through, + authors should use a graphics-figure + or graphics-document role instead. +

+

+ The element with the img role + may also contain captions and descriptive text within child elements, + if those elements participate in + the accessible name or description calculation for that element. + To ensure that elements with a role of img + are perceivable, + authors MUST provide alternative text or a label + determined by the accessible name calculation. + Authors SHOULD also provide an accessible description + that conveys the complete meaning of the image. + If the image is purely symbolic, + and the visual details are not relevant, + the graphics-symbol role is more appropriate. + If the image is used as a direct substitute + for a short word or phrase within a sentence, + the text role is appropriate. +

+

+ The img role was first defined in ARIA 1.0. + This specification modifies that definition + in a backwards-compatible way, + to clarify the distinction between images + and other graphical roles. +

+
+<!-- Within an HTML 5 document, an inline SVG
+    may sometimes represent an atomic img -->
+<p>A repeating SVG gradient is defined using the
+    <code>spreadMethod</code> attribute.  
+    A value of <code>repeat</code> causes the color stops
+    to repeat in the same order, from beginning to end:</p>
+<svg class="inline-example" role="img">
+    <title>A repeating linear gradient</title>
+    <desc>The gradient starts dark, slowly shifting to light, 
+        then quickly dark again.  This pattern repeats four
+        times left to right, each time brightening across a large
+        region and then getting dark within a short space.
+    </desc>
+    <linearGradient id="repeat" x2="25%" spreadMethod="repeat">
+        <stop offset="0"     stop-color="black" />
+        <stop offset="0.8" stop-color="white" />
+        <stop offset="1"     stop-color="black" />
+    </linearGradient>
+    <rect width="100%" height="100%" fill="url(#repeat)" />
+</svg>
+
+
+
+
+<!-- Within the fallback DOM dynamically constructed
+     for an HTML 5 canvas game,
+     elements may represent the different images
+     that create the composite graphic -->
+<canvas>
+    <p id="scene-desc" role="img" 
+       aria-label="The Dungeon"
+       aria-describedby="scene-desc">
+       The door opens into a long hallway.
+       Every few steps on either side are barred doors.
+       Moisture drips from the stone walls.
+    </p>
+    <p id="grue-1" role="img"
+       aria-label="Grue"
+       aria-describedby="grue-1">
+       An amorphous and poorly defined, but unmistakably sinister,
+       creature blocks the passage.
+   </p>
+   <!-- more DOM elements representing game controls -->
+</canvas>
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Is Abstract: 
Superclass Role:section
Subclass Roles:Placeholder
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements: 
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties:Placeholder
Name From:author
Accessible Name Required:True
Inherits Name Required: 
Children Presentational:True
Inherits Presentational: 
+
+
+
+
+
+

States and Properties

+

WAI-ARIA provides a collection of accessibility state and properties which are used to support platform accessibility APIs on various + operating system platforms. Assistive technologies may access this information through an exposed user agent DOM or through a mapping + to the platform accessibility API. When combined with roles, the user agent can supply the assistive technologies with user interface + information to convey to the user at any time. Changes in states or properties will result in a notification to assistive technologies, + which could alert the user that a change has occurred.

+

Assistive technology may use aria-gtype as an adjective for the role in name calculation.

+
+

Managing navigation

+

Roles, states and properties can be used to manage graphics navigation. Properties can be used to manage navigation behavior and + differentiate between graphics features with the same role and same semantic parent. Customized navigation behavior may be needed when + statistics produce multiple data columns. For example, data for a box and whisker plot are produced by statistics, and + the statistic produces columns for the fence, box, median and outliers. Outliers can be classified in more than one way and + different statistics can produce different flavors of boxes and fences and outliers. The semantics of the statistic need to be accurately + communicated to the user during exploration. Charts, instructional diagrams, chemical models and maps are examples of graphics that + may need customizable navigation. +

+

The following properties can modify navigation behavior: +

+

+ It has not been decided what mechanism, if any, will cue navigation changes. +

+
+
+

Definitions of States and Properties

+

Below is a list of properties that can be used with graphics roles. A detailed definition of each state and property + follows this compact list.

+

Placeholder for index of states and properties

+
+ +
+ aria-categories +
+

A list of categories.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Related Concepts:
Used in Roles:Placeholder
Inherits into Roles:Placeholder
Value:string
+
+
+ +
+ aria-gtype +
+

A differentiator for graphics features with the same role and semantic parent.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Characteristics:
CharacteristicValue
Related Concepts:
Used in Roles:Placeholder
Inherits into Roles:Placeholder
Value:string
+
+ +
+
+
+

Schemata

+

The HTML Working Group has incorporated the WAI-ARIA attributes into HTML 5. Official support for WAI-ARIA in HTML is provided in that specification.

+

Validation support for the roles defined in this module will be added once the specification reaches recommendation.

+

For information on incorporating WAI-ARIA into other grammars, refer to Appendix A of [[!WAI-ARIA]]

+

Review whether any additional schemata are necessary for this module.

+
+
+

Change Log

+

A detailed history of changes committed is available from the github repository for this document. When drafts of this document begin to stabilise, human-readable change logs will be incorporated.

+ +
+

WAI-ARIA Role, State, and Property Quick Reference

+

The following table provides a quick reference to the supported states and properties for all WAI-ARIA roles that may be used in markup.

+
+

In addition to the states and properties shown in the table, the following global states and properties are supported on all roles.

+

Placeholder for global states and properties

+
+

Placeholder for quick reference table

+
+
+

Acknowledgments

+

The following people contributed to the development of this document.

+
+

Participants active in the SVG accessibility task force at the time of publication

+
    +
  • Amelia Bellamy-Royds (Invited expert)
  • +
  • Fred Esch (IBM Corporation)
  • +
  • Charles McCathieNevile (Yandex)
  • +
  • Charu Pandhi (IBM Corporation)
  • +
  • Doug Schepers (W3C Staff)
  • +
  • Richard Schwerdtfeger (Knowbility)
  • +
  • Léonie Watson (The Paciello Group)
  • +
  • Jason White (Educational Testing Service)
  • +
+
+
+

Participants active in the PFWG at the time of publication

+
    +
  • Christy Blew (University of Illinois at Urbana-Champaign)
  • +
  • David Bolter (Mozilla Foundation)
  • +
  • Michael Cooper (W3C/MIT)
  • +
  • James Craig (Apple Inc.)
  • +
  • Joanmarie Diggs (Igalia)
  • +
  • Fred Esch (IBM Corporation)
  • +
  • Steve Faulkner (The Paciello Group)
  • +
  • John Foliot (Invited Expert)
  • +
  • Christopher Gallelo (Microsoft Corporation)
  • +
  • Bryan Garaventa (SSB BART Group)
  • +
  • Scott González (JQuery Foundation)
  • +
  • Billy Gregory (The Paciello Group)
  • +
  • Karl Groves (The Paciello Group)
  • +
  • Jon Gunderson (University of Illinois at Urbana-Champaign)
  • +
  • Birkir Gunnarsson (Deque Systems, Inc.)
  • +
  • Markus Gylling (DAISY Consortium)
  • +
  • Mona Heath (University of Illinois at Urbana-Champaign)
  • +
  • Susann Keohane (IBM Corporation)
  • +
  • Matthew King (IBM Corporation)
  • +
  • Jason Kiss (Department of Internal Affairs, New Zealand Government)
  • +
  • Dominic Mazzoni (Google, Inc.)
  • +
  • Shane McCarron (Invited Expert, Aptest)
  • +
  • Charles McCathieNevile (Yandex)
  • +
  • Mary Jo Mueller (IBM Corporation)
  • +
  • James Nurthen (Oracle Corporation)
  • +
  • Janina Sajka (Invited Expert, The Linux Foundation)
  • +
  • Joseph Scheuhammer (Invited Expert, Inclusive Design Research Centre, OCAD University)
  • +
  • Stefan Schnabel (SAP AG)
  • +
  • Richard Schwerdtfeger (Knowbility)
  • +
  • Lisa Seeman (Invited Expert)
  • +
  • Cynthia Shelly (Microsoft Corporation)
  • +
  • Alexander Surkov (Mozilla Foundation)
  • +
  • Léonie Watson (The Paciello Group)
  • +
  • Jason White (Educational Testing Service)
  • +
  • Marco Zehe (Mozilla Foundation)
  • +
  • Gottfried Zimmermann (Invited Expert, Access Technologies Group)
  • +
+
+
+
+ + diff --git a/graphics-aria/img/blueprint.svg b/graphics-aria/img/blueprint.svg new file mode 100644 index 000000000..b3d9fdaed --- /dev/null +++ b/graphics-aria/img/blueprint.svg @@ -0,0 +1,62 @@ + + Room with 5 outlets + Schematic showing the minimum number and position of + electrical outlets for a mid-sized room with one door. + + + + The symbol for an electrical outlet is a circle with + a plug shape overlaid on top. The plug consists of two horizontal + lines extending from a vertical line. + + + + + + + + A rectangular room + 3.5 metres East-West, 2.5 meters North-South + + + Door + on West side of South wall + + + + + + Electrical outlet + on West side of North wall + + + Electrical outlet + on East side of North wall + + + Electrical outlet + at center of West wall + + + Electrical outlet + at center of East wall + + + Electrical outlet + on East side of South wall + + + \ No newline at end of file diff --git a/graphics-aria/img/circuit-diagram.svg b/graphics-aria/img/circuit-diagram.svg new file mode 100644 index 000000000..a2063f227 --- /dev/null +++ b/graphics-aria/img/circuit-diagram.svg @@ -0,0 +1,59 @@ + + A simple circuit + A circuit with one source, one switch, and one load + + + + + + + + + + + + + 10W + + + + + \ No newline at end of file diff --git a/graphics-aria/img/figure-graphics-doc.html b/graphics-aria/img/figure-graphics-doc.html new file mode 100644 index 000000000..1ed10d321 --- /dev/null +++ b/graphics-aria/img/figure-graphics-doc.html @@ -0,0 +1,187 @@ + + + + + + img role for SVG elements + + + +
+ + Repeating versus reflecting linear gradients + + The graphic shows two gradient patterns, + annotated with text labels and arrows. + Both gradients use the same series of color stops, + starting dark, slowly shifting to light, + then quickly dark again. + This cycle covers one-quarter of the width of the graphic, + starting on the left. + The two gradients differ in their repeat cycles. + + + + + + + + + + + + + + + + + + + The gradient stretches across the top half of + the graphic. + Each cycle of the gradient repeats exactly, + and is emphasized by a left-to-right arrow. + + + + 1st cycle + left-to-right arrow, starting from x="0" + + + 2nd cycle + left-to-right arrow, starting from x="25%" + + + 3rd cycle + left-to-right arrow, starting from x="50%" + + + 4th cycle + left-to-right arrow, starting from x="75%" + + repeat + + + + The gradient stretches across the bottom half of + the graphic. + Each cycle of the gradient alternates direction, + left-to-right then right-to-left, + as do the arrows that emphasize the pattern. + + + + + 1st cycle + left-to-right arrow, starting from x="0" + + + 2nd cycle, reflected + right-to-left arrow, ending at x="25%" + + + 3rd cycle + left-to-right arrow, starting from x="50%" + + + 4th cycle, reflected + right-to-left arrow, ending at x="75%" + + reflect + + +
Figure 1: spreadMethod options for + repeating SVG gradients
+
+

A repeating SVG gradient is defined using the + spreadMethod attribute. + Figure 1 compares the two + possible variations. +

+

+ A value of repeat causes the color stops + to repeat in the same order, from beginning to end. + In contrast, a value of reflect + causes the order and spacing of colors + to alternate in each repeat.

+

Both of the gradients in Figure 1 + repeat the sequence of color stops four times, + as indicated by the arrows. + However, in the reflected gradient every second + cycle is reversed, as shown by the arrows pointing + in the opposite direction.

+ + \ No newline at end of file diff --git a/graphics-aria/img/house-graphicsroles.svg b/graphics-aria/img/house-graphicsroles.svg new file mode 100644 index 000000000..8b6c2d6a7 --- /dev/null +++ b/graphics-aria/img/house-graphicsroles.svg @@ -0,0 +1,151 @@ + + Home + + Blue sky, sunshine, and green grass + + + + + + + + A two-storey brick house, drawn with basic shapes. + + + + + + + The brown door on the left side of the building + has a window and a round doorknob + + + + + + + + + + + A small window beside the door + + + A large three-pane window fills + the rest of the first floor + + + + + A two-pane window + + + A matching two-pane window + on the other side of the house + + + A small circular window + in the middle of the second floor + + + + + + A peaked roof + + The chimney has a puff of smoke + rising from it + + + + + + + + + A cluster of plants in the yard + + Apples! + a small decidous tree + with 5 ripe red apples on it + + + + + + + + + + + + + + a small tree with drooping branches + + + + at the base of the apple tree + + + + + + + My House + + \ No newline at end of file diff --git a/graphics-aria/img/img-role-for-svg.html b/graphics-aria/img/img-role-for-svg.html new file mode 100644 index 000000000..510e5caba --- /dev/null +++ b/graphics-aria/img/img-role-for-svg.html @@ -0,0 +1,59 @@ + + + + + + img role for SVG elements + + + +

A repeating SVG gradient is defined using the + spreadMethod attribute. + A value of repeat causes the color stops + to repeat in the same order, from beginning to end:

+ + A repeating linear gradient + The gradient starts dark, slowly shifting to light, + then quickly dark again. This pattern repeats four + times left to right, each time brightening across a large + region and then getting dark within a short space. + + + + + + + + +

In contrast, a value of reflect + causes the order and spacing of colors + to alternate in each repeat:

+ + A reflecting linear gradient + The gradient again starts dark, slowly shifting to light, + then quickly dark again. However, the next repeat shifts + quickly to the light, then slowly back dark. + The original pattern is then repeated, followed by the reflected + version again. + + + + +

Both of these gradients repeat + the sequence of color stops four times, + from left to right.

+ + \ No newline at end of file diff --git a/graphics-aria/img/monthsCircle.svg b/graphics-aria/img/monthsCircle.svg new file mode 100644 index 000000000..65ebf2aab --- /dev/null +++ b/graphics-aria/img/monthsCircle.svg @@ -0,0 +1,40 @@ + + + + Jan + + Feb + + + Mar + + + Apr + + May + + + + + Jun + + Jul + + + Aug + + Sep + + + + + Oct + + Nov + + Dec + + + + + \ No newline at end of file diff --git a/graphics-aria/img/nested-figures.html b/graphics-aria/img/nested-figures.html new file mode 100644 index 000000000..756a68f4b --- /dev/null +++ b/graphics-aria/img/nested-figures.html @@ -0,0 +1,108 @@ + + + + + + figure role for SVG elements + + + +
+ + + + + + + a) spreadMethod="repeat" + + A repeating linear gradient + The gradient starts dark, slowly shifting to light, + then quickly dark again. This pattern repeats four + times left to right, each time brightening across a large + region and then getting dark within a short space. + + + + + + b) spreadMethod="reflect" + + A reflecting linear gradient + The gradient again starts dark, slowly shifting to light, + then quickly dark again. However, the next repeat shifts + quickly to the light, then slowly back dark. + The original pattern is then repeated, followed by the reflected + version again. + + + +
Figure 1: Repeating SVG gradients
+
+

A repeating SVG gradient is defined using the + spreadMethod attribute. + A value of repeat causes the color stops + to repeat in the same order, from beginning to end, + as shown in Figure 1-a.

+

In contrast, a value of reflect + causes the order and spacing of colors + to alternate in each repeat, + as in Figure 1-b.

+

Both of the gradients in Figure 1 + repeat the sequence of color stops four times, + with the initial cycle from left to right.

+ + \ No newline at end of file diff --git a/graphics-aria/index.html b/graphics-aria/index.html new file mode 100644 index 000000000..141893a5b --- /dev/null +++ b/graphics-aria/index.html @@ -0,0 +1,1210 @@ + + + + + + WAI-ARIA Graphics Module + + + + + + + + + + +
+

+ Assistive technologies need semantic information about the structures and expected behaviors of a document in order to convey appropriate information to persons with disabilities. This + specification defines a WAI-ARIA 1.1 [[WAI-ARIA-1.1]] module of core roles + specific to web graphics. These semantics allow an author to express the logical structure of the graphic to assistive technologies in order improve accessibility of graphics. Assistive + technologies could then enable semantic navigation and adapt styling and interactive features, to provide an optimal experience for the audience. These features complement the graphics and + document structure elements defined by HTML [[HTML52]] and SVG [[SVG2]]. +

+

+ This document is part of the WAI-ARIA suite described in the + WAI-ARIA Overview. +

+
+
+

+ This is an Editor's Draft of WAI-ARIA Graphics Module 1.0 by the + SVG Accessibility Taskforce, a joint task force of the + Accessible Rich Internet Applications Working Group and the SVG Working Group. +

+

+ Feedback on any aspect of the specification is accepted. For this publication, the SVG Accessibility Task Force particularly seeks feedback on the + following questions: +

+ +

+ To comment, file an issue in the W3C graphics-aria GitHub repository. If this is not feasible, send email to + public-aria@w3.org (comment archive). + In-progress updates to the document may be viewed in the publicly visible editors' draft. +

+
+
+
+

Introduction

+

+ WAI-ARIA is a technical specification that provides a framework to improve the accessibility and interoperability of web content and + applications. It enables web browsers to map the accessibility semantics in web content to platform-specific accessibility APIs. This enables web content to be interoperable with platform + assistive technologies, similar to native platform applications, without requiring authors to include platform dependencies. +

+

+ This specification is a modular extension of WAI-ARIA [[WAI-ARIA-1.1]] designed to support graphics. The goals of this specification + include: +

+ +

+ This specification defines the core roles that would be used in all structured graphics or diagrams. It establishes the default roles that can be used to describe graphical markup elements + such as shapes and canvases. In combination with WAI-ARIA attributes to provide alternative text and to indicate relationships between elements, this provides a framework for annotating many + figures and diagrams. Future work will expand on this framework to enable more detailed annotation of data-rich graphics such as charts or maps. +

+

+ For a more detailed explanation of WAI-ARIA please refer to the + WAI-ARIA Introduction and how it applies to Rich Internet Application Accessibility. +

+ +
+

Target Audience

+

+ This specification defines a module of WAI-ARIA for graphics, consisting of graphics-specific element roles. It impacts several audiences: +

+
    +
  • + User agents that process content containing WAI-ARIA and graphics + WAI-ARIA features; +
  • +
  • Assistive technologies that provide specialized reading experiences to users with disabilities;
  • +
  • Authors of web graphics;
  • +
  • Authoring tools that help authors create conforming graphics; and
  • +
  • + Conformance checkers, that verify appropriate use of WAI-ARIA and this + WAI-ARIA Graphics module. +
  • +
+

Each conformance requirement indicates the audience to which it applies.

+ +
+ +
+

User Agent Support

+

+ This module follows the general User Agent support principles defined in WAI-ARIA [[WAI-ARIA-1.1]]. The roles defined here do not + require any change in behavior by user agents other than in the information exposed to the accessibility API. However, the semantics defined here provide the ability for user agents + to enhance the general user interface presented to readers. For example, a user agent may provide alternative keyboard navigation suitable to a graphical environment, or may allow users to + extract a copy of a graphic from a larger document. +

+
+ +
+

Co-Evolution of WAI-ARIA and Host Languages

+

+ The WAI-ARIA Graphics module follows the model for + co-evolution of WAI-ARIA and host languages defined in WAI-ARIA + [[WAI-ARIA-1.1]]. It is intended to augment semantics in supporting languages like HTML [[HTML52]], SVG [[SVG2]] and EPUB, or to be used as an accessibility enhancement technology in other + markup-based languages that do not explicitly include support for ARIA. WAI-ARIA roles clarify semantics to assistive technologies when authors create new types of objects, via style + and script, or use markup languages which describe the visual appearance of a document rather than its meaning. +

+

+ Although markup languages may provide some of these semantics natively, it is expected that there will be a persistent need for the semantics provided by the + WAI-ARIA Graphics module. Some host languages exist to create semantics for features other than the user interface. For example, + SVG expresses the semantics behind production of graphical objects, not of user interface components that those objects may represent. Host languages such as these might, by design, not + provide native semantics that map to all of this specification's features. In these host languages, the WAI-ARIA Graphics module + could be adopted as a long-term approach to add semantic information. +

+
+ +
+

Authoring Practices

+
+

Authoring Tools

+

+ Many of the requirements in the definitions of the WAI-ARIA and Graphics + WAI-ARIA roles, states and properties can be checked + automatically during the development process, similar to other quality control processes used for validating code. To assist authors who are creating graphics, these tools can compare the + semantic structure of Graphics WAI-ARIA roles from the DOM to that defined in this + specification and notify the author of errors or simply create templates that enforce that structure. +

+
+ +
+

Testing Practices and Tools

+

+ The accessibility of interactive content cannot be confirmed by static checks alone. Developers of interactive content should test for device-independent access to + widgets and applications, and should verify accessibility API access to all content and changes during user + interaction. +

+
+
+ +
+

Assistive Technologies

+

+ Programmatic access to accessibility semantics is essential for assistive technologies. For more information, refer to the + Assistive Technologies section in WAI-ARIA [[WAI-ARIA-1.1]]. +

+

For the graphics roles in particular, two categories of assistive technology are particularly relevant, but have different needs:

+
    +
  • + Text-based presentations, such as screen readers, braille displays, and text-only displays or printers. These technologies need to replace a complex graphic with semantic text + descriptions, preserving any meaningful structure and relationships between components. +
  • +
  • + Alternative graphical presentations, such as colour-adjusted displays, screen magnifiers, large print documents, or embossing printers with graphic support. These technologies need to + distinguish between graphical features which are primarily decorative and those which are essential for conveying the meaning of the content. +
  • +
+

The role descriptions suggest which features of an element with that role are considered semantically important and should be conveyed to the reader whenever possible.

+
+
+
+

Conformance

+

+ The main content of this specification is normative and defines requirements that impact conformance claims. Introductory material, appendices, sections marked as + "non-normative" and their subsections, diagrams, examples, and notes are informative (non-normative). Non-normative material provides advisory information to help + interpret the guidelines but does not create requirements that impact a conformance claim. +

+

+ Normative sections provide requirements that user agents must follow for an implementation to conform to this specification. The keywords MUST, + MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, + RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described in + Keywords for use in RFCs to indicate requirement levels [[!RFC2119]]. RFC-2119 keywords are formatted in uppercase and + contained in an element with class="rfc2119". When the keywords shown above are used, but do not share this format, they do not convey formal information in the RFC 2119 sense, + and are merely explanatory, i.e., informative. As much as possible, such usages are avoided in this specification. +

+

Normative sections provide requirements that authors, user agents and assistive technologies MUST follow for an implementation to conform to this specification.

+

+ Non-normative (informative) sections provide information useful to understanding the specification. Such sections may contain examples of recommended practice, but it is not required to follow + such recommendations in order to conform to this specification. +

+
+
+

Graphics Roles

+

+ This section defines additions to the + WAI-ARIA + role taxonomy and describes the characteristics and properties of all roles. See + ARIA Roles for descriptions of the fields provided by this module. +

+

+ Authors are given the ability to influence what is presented to assistive technologies and to influence navigation through the use of roles and properties. This includes the ability to mark + elements as having no semantic importance. With graphics, there are many cases where presenting and navigating every element will make the graphic harder to understand and use. +

+

+ Authors may mark elements for exclusion from the semantic representation of the document (the accessibility tree) by assigning the role none or presentation. The + element with this role should be treated transparently by assistive technologies, as if its children or text content were directly contained by its parent element. In addition, certain roles, + such as img or graphics-symbol, when assigned to a parent element, will cause all child DOM structure to be omitted from the accessibility tree. This is indicated by + the "Children Presentational" value in the role characteristics table. Finally, the native semantics of the graphics language may also default to ignoring DOM structure that does not have + semantic data attached; for SVG, this is defined in the SVG Accessibility API Mappings specification [[SVG-AAM-1.0]]. +

+

+ In all cases, to be considered presentational, an element must not be interactive and must not be assigned any accessible properties or alternative text. A role of none or + presentation will be ignored for interactive elements or those with WAI-ARIA states and properties. +

+
+

Definition of Roles

+

+ Below is an alphabetical list of the + WAI-ARIA + roles defined in this specification. They would normally be used in combination with other roles defined in WAI-ARIA to annotate graphics within + documents and rich internet applications [[WAI-ARIA-1.1]]. +

+ +

Placeholder for compact list of roles

+ +
+ graphics-document +
+

A type of document in which the visual appearance or layout of content conveys meaning.

+

+ Similar to other document types, the graphics-document role applies to the root element of a region of the page containing related information, where the user's + primary interaction mode is expected to be browsing the document rather than controlling an application. The element with this role may be the root element of the document file, or of a + nested structure within it. +

+

The graphics-document may be distinguished from similar roles as follows:

+
    +
  • +

    + Relative to other documents, a graphics-document is distinguished by the semantic importance of its visual (usually two-dimensional) representation. User agents and + assistive technologies SHOULD take this into consideration when supporting navigation of the graphic. Accessibility technologies that re-format or re-style a document SHOULD NOT + alter the layout of a graphics-document + except in ways that are consistent with the semantic roles and relationships of its content. +

    +
  • +
  • +

    + Relative to an img, a graphics-document + is distinguished by the structured nature of its content. Its child elements may have semantic meaning, and may include links or other interactive widgets. +

    +
  • +
  • +

    + Relative to a graphics-object, a graphics-document is self-contained. Its meaning persists when separated from surrounding content. The element with the + graphics-document role defines the scope and context for interpretation of the child content. +

    +
  • +
+

+ In general, authors SHOULD use the graphics-document role for structured graphics such as charts, maps, diagrams, technical drawing, blue prints and instructional graphics. + However, if a single large graphic has discrete regions that may be safely re-arranged without sacrificing meaning, each of those regions SHOULD be a distinct + graphics-document. An alternative role (such as figure) may be used to group them together. One graphics-document may also be nested inside + another, for example a bar chart that is embedded in a map or a matrix of chart panels should have a role of graphics-document. The nested document provides encapsulation; + navigation between components of the inner and outer graphics should be explicit. +

+
+

+ To support user agents and assistive technologies based on the ARIA 1.0 specification, authors may wish to include the document role as a fallback value, in the form + role="graphics-document document". +

+

+ Future specifications may define more specific roles for particular types of graphical documents with special semantic structures. Those more specific roles would be subclasses of + graphics-document. +

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics: +
CharacteristicValue
Is Abstract: 
Superclass Role:document
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:True
Inherits Name Required:
Children Presentational:False
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ graphics-object +
+

+ A section of a graphics-document + that represents a distinct object or sub-component with semantic meaning. A graphical object may itself have nested sub-components. +

+

+ Container elements that represent a collection of disconnected objects should be given the + group or list roles, instead. Grouping elements that do not have semantic meaning and do not alter the semantic context provided by an ancestor (for example, a + div or SVG g that is only used for styling or layout) SHOULD NOT be given a role. The lack of role may be explicitly indicated with the role + none or presentation. +

+

+ Unlike a graphics-document, a graphics-object need not be self-contained, and it does not establish a new context for navigation. However, user agents and + assistive technologies SHOULD provide a way for users, particularly non-visual users, to navigate the nested structure of objects in a hierarchical manner, similar to nested lists. +

+

+ To support user agents and assistive technologies based on the ARIA 1.0 specification, authors may wish to include the group role as a fallback value, in the form + role="graphics-object group". +

+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics: +
CharacteristicValue
Is Abstract: 
Superclass Role:group
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From: +
    +
  • author
  • +
  • contents
  • +
+
Accessible Name Required:False
Inherits Name Required:
Children Presentational:False
Inherits Presentational: 
Implicit Value for Role: 
+
+ +
+ graphics-symbol +
+

+ A graphical object used to convey a simple meaning or category, where the meaning is more important than the particular visual appearance. It may be a component of a larger structured + graphic such as a chart or map. The symbol itself is an atomic object; children are presentational. +

+

+ When used as part of a structured symbolic language, the aria-roledescription property (introduced in ARIA 1.1 [[WAI-ARIA-1.1]]) can be used to name the symbol type + separately from the name and description for the particular instance of the symbol. +

+

+ To support user agents and assistive technologies based on the ARIA 1.0 specification, authors may wish to include the img role as a fallback value, in the form + role="graphics-symbol img", if that is not already the default semantic role for the element. +

+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Characteristics: +
CharacteristicValue
Is Abstract: 
Superclass Role:img
Subclass Roles: 
Base Concept: 
Related Concepts:
Required Context Role: 
Required Owned Elements:
Required States and Properties: 
Supported States and Properties: 
Inherited States and Properties: 
Name From:author
Accessible Name Required:True
Inherits Name Required:
Children Presentational:True
Inherits Presentational: 
Implicit Value for Role: 
+
+
+
+

Other Roles for Graphics

+

The following core ARIA roles, defined in ARIA 1.1 [[WAI-ARIA-1.1]], are also relevant for annotating graphics:

+
    +
  • + img (image) defines a single graphic that is perceived as an indivisible whole. Unlike a graphics-document, an image cannot have navigable or interactive child + content. Unlike a graphics-symbol, an image may require a detailed text description to fully convey its meaning to non-visual users. +
  • +
  • + figure defines a container element for content (including graphics) that is a key part of the containing document but is outside the normal reading stream. A figure will often + contain one or more elements with the img or graphics-document roles, but may also contain text captions, credits, or other related content. +
  • +
+

+ The following examples demonstrate appropriate use of + img, figure, and graphics-document + in a document. +

+ + + + +
+
+
+

States and Properties

+

+ WAI-ARIA provides a collection of accessibility state and properties which are used to support platform accessibility APIs on various operating system platforms. Assistive technologies may + access this information through an exposed user agent DOM or through a mapping to the platform accessibility API. When combined with roles, the user agent can supply the assistive technologies + with user interface information to convey to the user at any time. Changes in states or properties will result in a notification to assistive technologies, which could alert the user that a + change has occurred. +

+
+
+

Change Log

+

The full commit history to WAI-ARIA Graphics Module 1.0 is available.

+
+

Substantive changes since the last public working draft

+
    +
  • 2017-11-15: Change superclass for graphics-object to img and graphics-symbol to group.
  • + +
+
+
+

Other substantive changes since the First Public Working Draft

+
    +
  • 2016-01-26: changed superclass of graphics-doc to structure.
  • +
  • 2016-04-28: removed reference to role="none" or "presentation".
  • +
  • 2016-05-02: Change graphics-doc to graphics-document.
  • +
  • 2016-05-07: clarify limitations of presentational role; mention SVG 2 next to HTML 5 in section on Schemata.
  • + +
+
+
+
+

Acknowledgments

+

The following people contributed to the development of this document.

+
+

Participants active in the SVG accessibility task force at the time of publication

+
    +
  • Amelia Bellamy-Royds (Invited expert)
  • +
  • Fred Esch (IBM Corporation)
  • +
  • Charles McCathieNevile (Yandex)
  • +
  • Charu Pandhi (IBM Corporation)
  • +
  • Doug Schepers (W3C Staff)
  • +
  • Richard Schwerdtfeger (Knowbility)
  • +
  • Léonie Watson (The Paciello Group)
  • +
  • Jason White (Educational Testing Service)
  • +
+
+
+

Participants active in the ARIA WG at the time of publication

+
    +
  • David Bolter (Mozilla Foundation)
  • +
  • Michael Cooper (W3C/MIT)
  • +
  • James Craig (Apple Inc.)
  • +
  • Joanmarie Diggs (Igalia)
  • +
  • John Foliot (Invited Expert)
  • +
  • Christopher Gallelo (Microsoft Corporation)
  • +
  • Bryan Garaventa (SSB BART Group)
  • +
  • Jon Gunderson (University of Illinois at Urbana-Champaign)
  • +
  • Matthew King (IBM Corporation)
  • +
  • Dominic Mazzoni (Google, Inc.)
  • +
  • Shane McCarron (Invited Expert, Aptest)
  • +
  • James Nurthen (Oracle Corporation)
  • +
  • Janina Sajka (Invited Expert, The Linux Foundation)
  • +
  • Stefan Schnabel (SAP AG)
  • +
  • Lisa Seeman (Invited Expert)
  • +
  • Alexander Surkov (Mozilla Foundation)
  • +
  • Jason White (Educational Testing Service)
  • +
+
+
+
+ + diff --git a/html-aam/.editorconfig b/html-aam/.editorconfig new file mode 100644 index 000000000..e20a9680d --- /dev/null +++ b/html-aam/.editorconfig @@ -0,0 +1,11 @@ +# http://editorconfig.org + +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true \ No newline at end of file diff --git a/html-aam/.gitignore b/html-aam/.gitignore new file mode 100644 index 000000000..ead8624e4 --- /dev/null +++ b/html-aam/.gitignore @@ -0,0 +1,219 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +<<<<<<< HEAD +*.py[co] +======= +*.py[cod] +>>>>>>> a51b9db2d4ebd2968f49781325ba3e4741f0127f + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg diff --git a/html-aam/README.md b/html-aam/README.md new file mode 100644 index 000000000..cac9ee716 --- /dev/null +++ b/html-aam/README.md @@ -0,0 +1,5 @@ +# HTML-AAM +HTML Accessibility API Mappings (html-aam) developed by the [Accessible Rich Internet Applications Working Group](https://www.w3.org/WAI/ARIA/) (previously the [Web Applications Working Group](https://www.w3.org/2019/webapps/)). It is the basis of the [Editor's Draft version of the specification](https://w3c.github.io/html-aam/). You can also compare against [the most recent published version](https://www.w3.org/TR/html-aam-1.0/). + +This specification was part of the [ARIA suite](https://www.w3.org/WAI/ARIA/deliverables). General information about editing the specification is in the [main ARIA repository readme](https://github.com/w3c/aria/). + diff --git a/html-aam/biblio.js b/html-aam/biblio.js new file mode 100644 index 000000000..b65df52ae --- /dev/null +++ b/html-aam/biblio.js @@ -0,0 +1,46 @@ +var localBiblio = { + // Correct reference for ATK + "ATK": { + "href": "https://gitlab.gnome.org/GNOME/at-spi2-core/", + "title": "ATK - Accessibility Toolkit", + "publisher": "The GNOME Project" + }, + "AT-SPI": { + "href": "https://gitlab.gnome.org/GNOME/at-spi2-core/", + "title": "Assistive Technology Service Provider Interface", + "publisher": "The GNOME Project" + }, + // Custom reference for the Mac OSX Accessibility API + "AXAPI": { + "href": "https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Protocols/NSAccessibility_Protocol/index.html", + "title": "The Mac OS X Accessibility Protocol Mac OS 10.10", + "publisher": "Apple Corporation" + }, + "EPUB-SSV": { + "href": "http://www.idpf.org/epub/vocab/structure/", + "title": "EPUB Structural Semantics Vocabulary", + "publisher": "IDPF" + }, + // Custom reference for GTK+ (GNOME GUI Toolkit) (not available from SpecRef biblio) + "GTK": { + "href": "https://developer.gnome.org/gtk3/stable/", + "title": "GTK+ 3 Reference Manual", + "publisher": "The GNOME Project" + }, + "MSAA": { + "href": "https://msdn.microsoft.com/en-us/library/ms697707.aspx", + "title": "Microsoft Active Accessibility (MSAA) 2.0", + "publisher": "Microsoft Corporation" + }, + "UI-AUTOMATION": { + "href": "https://msdn.microsoft.com/en-us/library/ee684009%28v=vs.85%29.aspx", + "title": "UI Automation", + "publisher": "Microsoft Corporation" + }, + // Custom reference for UIA Express (not available from SpecRef biblio). + "UIA-EXPRESS": { + "href": "https://msdn.microsoft.com/en-us/library/windows/desktop/dd561898%28v=vs.85%29.aspx", + "title": "The IAccessibleEx Interface", + "publisher": "Microsoft Corporation" + }, +}; diff --git a/html-aam/css/html-aam.css b/html-aam/css/html-aam.css new file mode 100644 index 000000000..758078b86 --- /dev/null +++ b/html-aam/css/html-aam.css @@ -0,0 +1 @@ +.no-transform tbody th {max-width: 100%;} \ No newline at end of file diff --git a/html-aam/index.html b/html-aam/index.html new file mode 100644 index 000000000..a1a55b8e7 --- /dev/null +++ b/html-aam/index.html @@ -0,0 +1,16450 @@ + + + + + HTML Accessibility API Mappings 1.0 + + + + + + + + + + + + +
+

+ HTML Accessibility API Mappings (HTML-AAM) defines how user agents map HTML [[HTML]] elements and attributes to platform + accessibility application programming interfaces (APIs). It leverages and extends the + [[[core-aam-1.2]]] and the [[[accname-1.2]]] for use with the HTML host language. Documenting these mappings promotes interoperable exposure of roles, states, properties, and events + implemented by accessibility APIs and helps to ensure that this information appears in a manner consistent with author intent. +

+

+ The HTML-AAM is part of the WAI-ARIA suite described in the + WAI-ARIA Overview. +

+
+
+

+ This document is subject to change without notice. +

+

+ This document was initially developed by and with the approval of the HTML Accessibility Taskforce, a joint task force of the + Protocols and Formats Working Group and the HTML Working Group. Work continued with the successor groups + Accessible Rich Internet Applications Working Group and the Web Applications Working Group. This + document is now maintained solely by the Accessible Rich Internet Applications Working Group. +

+
+
+

Introduction

+

+ This specification defines how HTML user agents respond to and expose [=role=], [=state=] and [=ARIA/property=] information provided for Web content. Unless indicated otherwise, an HTML + element or attribute with default [[[wai-aria-1.2]]] semantics must be exposed to the platform accessibility APIs according to the relevant WAI-ARIA mappings defined in + the [[[core-aam-1.2]]] specification. +

+

+ In some cases, often due to features of the HTML host language or the accessibility API in question, an element or attribute's mapping differs from the corresponding ARIA mappings specified in + the [[core-aam-1.2]]. Where an HTML element or attribute does not have any default WAI-ARIA semantics, the applicable mapping for each platform accessibility API is + defined by this specification. +

+

+ This document also adapts the [[[accname-1.2]]] specification for deriving the accessible names and + accessible descriptions of [[HTML]] elements, and provides accessible implementation examples for specific HTML elements and + features. +

+

+ Users often access HTML content using assistive technologies that rely on platform accessibility API to obtain and + interact with information from the page. This document is part of the following suite of accessibility API mapping specifications for content rendered by user agents: +

+ +
+

Accessibility APIs

+

Accessibility APIs covered by this document are:

+
    +
  • MSAA with IAccessible2 1.3 [[IAccessible2]]
  • +
  • User Interface Automation [[UI-AUTOMATION]]
  • +
  • ATK - Accessibility Toolkit [[ATK]] and Assistive Technology Service Provider Interface [[AT-SPI]], referred to hereafter as "ATK/AT-SPI"
  • +
  • macOS Accessibility Protocol [[AXAPI]]
  • +
+

+ If user agent developers need to expose information using other accessibility APIs, it is recommended that they work closely with the developer of the platform where + the API runs, and assistive technology developers on that platform. +

+

For more information regarding accessibility APIs, refer to section 1.1 Accessibility APIs of the [[[core-aam-1.2]]].

+
+
+
+

The classification of a section as normative or non-normative applies to the entire section and all sub-sections of that section.

+

Normative sections provide requirements that authors, user agents, and assistive technologies MUST follow for an implementation to conform to this specification.

+

+ Non-normative sections provide information useful to understanding the specification. Such sections may contain examples of recommended practice, but it is not required to follow such + recommendations in order to conform to this specification. +

+
+

Deprecated

+

There are currently no deprecated requirements.

+
+
+
+

Mapping HTML to Accessibility APIs

+
+

General Rules for Exposing WAI-ARIA Semantics

+

WAI-ARIA support was first introduced to HTML in [[HTML5]].

+

+ Where an HTML element or attribute has default WAI-ARIA semantics, it MUST be exposed to the platform accessibility APIs in a way that conforms to + General rules for exposing WAI-ARIA semantics in the [[[core-aam-1.2]]]. +

+
+
+

Conflicts Between Native Markup Semantics and WAI-ARIA

+

+ Where the host language is [[HTML]], user agents MUST conform to + Conflicts between native markup semantics and WAI-ARIA in the [[[core-aam-1.2]]]. +

+
+
+

Exposing HTML Features That Do Not Directly Map to Accessibility APIs

+

+ HTML can include features that are not supported by accessibility APIs at the time of publication. There is not a one to one relationship between all features and + platform accessibility APIs. When HTML roles, states and properties do not directly map to an accessibility API, and there is a method in the + API to expose a text string, user agents MUST expose the undefined role, states and properties via that method. +

+

+ For HTML elements or attributes with default WAI-ARIA semantics, user agents MUST conform to + Exposing attributes that do not directly map to accessibility API properties in + the [[core-aam-1.2]]. +

+
+
+

HTML Element Role Mappings

+
    +
  • + HTML elements with implicit WAI-ARIA role semantics MUST be mapped to platform accessibility APIs according to the identified WAI-ARIA role mapping as defined in the + [[core-aam-1.2]] specification. +
  • +
  • + "Not mapped" means the element does not need to be exposed via an accessibility API. This is usually because the element is not displayed as part of the user + interface. However, authors can force some of these elements to be rendered. For instance, by overriding user agent styles to render elements that would have been otherwise set to + `display: none`. In these cases, the user agent SHOULD map such elements to the role of `generic`. +
  • +
  • + Where applicable, how an element participates in the computation of its own or another element's accessible name and/or + accessible description is described in the + Accessible Name and Description Computation section of this document. +
  • +
  • + Where an element is indicated as having "No corresponding (WAI-ARIA) role", or is mapped to the `generic` role, user agents + MUST NOT expose the `aria-roledescription` property value in the accessibility tree unless the element has an + explicit, conforming `role` attribute value which [[WAI-ARIA-1.2]] does not prohibit the use of `aria-roledescription`. +
  • +
  • + When HTML elements do not have an exact or equivalent mapping to a valid, non-abstract WAI-ARIA role, a unique `computedrole` + string has been specified to serve as the return value for interoperability testing purposes. For instance, the `video` element MAY be exposed with a `computedrole` of "`html-video`". + Authors MUST NOT use any `html-`prefixed computed role string in the role attribute (such as `html-video`). User Agents MUST ignore any abstract or invalid role token. +
    + <video> <!-- computedrole returns 'html-video' --> <main role="html-video"> <!-- Author error. computed role returns 'main' --> +
    +
  • +
  • + IAccessible2: +
      +
    • All elements with accessible objects should implement the IAccessible, IAccessible2 and IAccessible2_2 interfaces.
    • +
    +
  • +
  • + UIA: +
      +
    • + When a labelable element is referenced by a `label` element's `for` attribute, or a descendant of a `label` element, the labelable + element's UIA `LabeledBy` property points to the UIA element for the `label` element. +
    • +
    • + Elements mapped to the `Text` Control Type are not generally represented as accessible objects in the + accessibility tree, but are just part of the `Text` Control Pattern implemented for the whole HTML document. However, if they have any `aria-` attributes or an + explicit `tabindex` specified, elements mapped to the `Text` Control Type will be represented as accessible objects in the + accessibility tree. +
    • +
    +
  • +
  • + AXAPI: +
      +
    • User agents should return a user-presentable, localized string value for the Mac Accessibility AXRoleDescription.
    • +
    +
  • +
+

`a` (represents a hyperlink)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `a` + (represents a hyperlink) +
[[wai-aria-1.2]]`link` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`a` (no `href` attribute)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `a` + (no `href` attribute) +
[[wai-aria-1.2]]`generic` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`abbr`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `abbr` +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-abbr
+ MSAA + IAccessible2 + +
Roles: `ROLE_SYSTEM_TEXT`; `IA2_ROLE_TEXT_FRAME`
+
+ Object attributes: + "abbr" attribute on the containing `td` if a single child, text content used as a value +
+
UIA +
Control Type: `Text`
+
ATK +
Role: `ATK_ROLE_STATIC`
+
+ Object attributes: + "abbr" attribute on the containing `td` if a single child, text content used as a value +
+
AX +
AXRole: `AXGroup`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `"group"`
+
Comments
+

`address`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `address` +
[[wai-aria-1.2]]`group` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`area` (represents a hyperlink)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `area` + (represents a hyperlink) +
[[wai-aria-1.2]]`link` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`area` (no `href` attribute)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `area` + (no `href` attribute) +
[[wai-aria-1.2]]`generic` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`article`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `article` +
[[wai-aria-1.2]]`article` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`aside` (scoped to the `body` or `main` element)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`aside` (scoped to the `body` or `main` element)
[[wai-aria-1.2]]`complementary` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`aside` (scoped to a sectioning content element)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `aside` + (scoped to a sectioning content element) +
[[wai-aria-1.2]] + `complementary` role if the `aside` element has an + accessible name. Otherwise, `generic` role. +
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`audio`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `audio` +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-audio
+ MSAA + IAccessible2 + +
Role: `ROLE_SYSTEM_GROUPING`
+
UIA +
Control Type: `Group`
+
Localized Control Type: `"audio"`
+
+ Note: If the `controls` attribute is present, UI controls (e.g., play, volume) are exposed as children of the + `audio` element in the accessibility tree, and mapped as appropriate for the type of control (e.g., + `button` or `slider`). +
+
+ Text objects associated with loading or error messages, and any UI control not currently displayed, MAY be present in the accessibility tree and marked as + hidden or off-screen. +
+
ATK +
Role: `ATK_ROLE_AUDIO`
+
AX +
AXRole: `AXGroup`
+
AXSubrole: `AXAudio`
+
AXRoleDescription: `"audio playback"`
+
+ Note: If the `controls` attribute is present, UI controls (e.g., play, volume) are exposed as descendants of an + accessible object with a role of `toolbar`, and mapped as appropriate for the type of control (e.g., + `button` or `slider`). +
+
Comments
+

autonomous custom element

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + autonomous custom element +
[[wai-aria-1.2]]If the author assigned a conforming ARIA role using the `role` attribute, map to that role. Otherwise, the `generic` role.
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`b`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `b` +
[[wai-aria-1.2]]`generic` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
CommentsExposed by platform specific bold font weight text styles.
+

`base`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `base` +
[[wai-aria-1.2]]No corresponding role
Computed Role
Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`bdi`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `bdi` +
[[wai-aria-1.2]]`generic` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
CommentsIA2/ATK: May affect on "writing-mode" text attribute on its text container.
+

`bdo`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `bdo` +
[[wai-aria-1.2]]`generic` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
CommentsIA2/ATK: Exposed as "writing-mode" text attribute on its text container.
+

`blockquote`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `blockquote` +
[[wai-aria-1.2]]`blockquote` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`body`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `body` +
[[wai-aria-1.2]]`generic` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`br`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `br` +
[[wai-aria-1.2]]No corresponding role
Computed Role
Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
CommentsMay be exposed as '\n' character by the platform interface.
+

`button`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `button` +
[[wai-aria-1.2]]`button` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments + A `button`'s mapping will change if the + `aria-pressed` or `aria-haspopup` attributes are specified. +
+

`canvas`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `canvas` +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-canvas
+ MSAA + IAccessible2 + +
Roles: `ROLE_SYSTEM_GRAPHIC`; `IA2_ROLE_CANVAS`
+
UIA +
Control Type: `Image`
+
Descendants of the `canvas` element are mapped separately.
+
ATK +
Role: `ATK_ROLE_CANVAS`
+
AX +
AXRole: `AXGroup`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `""`
+
Comments
+

`caption`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `caption` +
[[wai-aria-1.2]]`caption` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
+ Relations: + `IA2_RELATION_LABEL_FOR` with parent `table` +
+
UIA +
Use WAI-ARIA mapping
+
+ Other properties: The `LabeledBy` property for the parent `table` element points to the UIA element for the `caption` element. +
+
ATK +
Use WAI-ARIA mapping
+
+ Relations: + `ATK_RELATION_LABEL_FOR` with parent `table` +
+
AX +
Use WAI-ARIA mapping
+
+ Relations: + `ATK_RELATION_LABEL_FOR` with parent `table` +
+
CommentsIf a descendant of a `table`, the first instance of a `caption` element will provide the `table` its accessible name.
+

`cite`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `cite` +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-cite
+ MSAA + IAccessible2 + +
No accessible object. Styles used are mapped into text attributes on its text container.
+
UIA +
No accessible object. Styles used are exposed by UIA text attributes of the `TextRange` Control Pattern implemented on a parent accessible object.
+
ATK +
No accessible object. Styles used are mapped into text attributes on its text container.
+
AX +
AXRole: `AXGroup`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `"group"`
+
Comments
+

`code`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `code` +
[[wai-aria-1.2]]`code` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`col`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `col` +
[[wai-aria-1.2]]No corresponding role
Computed Role
Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`colgroup`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `colgroup` +
[[wai-aria-1.2]]No corresponding role
Computed Role
Not mapped
+ MSAA + IAccessible2 + +
Role: `ROLE_SYSTEM_GROUPING`
+
UIA +
+
Control Type: `Group`
+
Localized Control Type: `"colgroup"`
+
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`data`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `data` +
[[wai-aria-1.2]]`generic` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`datalist` (represents pre-defined options for `input` element)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `datalist` + (represents pre-defined options for `input` element) +
[[wai-aria-1.2]] + `listbox` role, with the `aria-multiselectable` property set to "true" + if the `datalist`'s selection model allows multiple `option` elements to be selected at a time, and "false" otherwise +
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
CommentsIf `datalist` is not linked to a proper `input` element, then `datalist` element is not mapped to accessibility APIs.
+

`dd`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `dd` +
[[wai-aria-1.2]]`definition` role
Computed Role +
Use WAI-ARIA mapping
+
Editorial Note: This value may change upon resolution of ARIA #1662.
+
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`del`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `del` +
[[wai-aria-1.2]]`deletion` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`details`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `details` +
[[wai-aria-1.2]]`group` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
+ Localized Control Type: `"details"` +
+
ATK +
Use WAI-ARIA mapping
+
+ Relations: `"ATK_RELATION_DETAILS_FOR"` +
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`dfn`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `dfn` +
[[wai-aria-1.2]]`term` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`dialog`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `dialog` +
[[wai-aria-1.2]]`dialog` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
CommentsSee also the `dialog` element's `open` attribute.
+

`div`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `div` +
[[wai-aria-1.2]]`generic` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`dl`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `dl` +
[[wai-aria-1.2]]`list` role
Computed Role +
list
+
Editorial Note: This value may change upon resolution of ARIA #1662.
+
+ MSAA + IAccessible2 + +
Role: `ROLE_SYSTEM_LIST`
+
States: `STATE_SYSTEM_READONLY`
+
UIA +
Control Type: `List`
+
ATK +
Role: `ATK_ROLE_DESCRIPTION_LIST`
+
AX +
AXRole: `AXList`
+
AXSubrole: `AXDefinitionList`
+
AXRoleDescription: `"definition list"`
+
Comments
+

`dt`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `dt` +
[[wai-aria-1.2]]`term` role
Computed Role +
Use WAI-ARIA mapping
+
Editorial Note: This value may change upon resolution of ARIA #1662.
+
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`em`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `em` +
[[wai-aria-1.2]]`emphasis` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`embed`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `embed` +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-embed
+ MSAA + IAccessible2 + +
Roles: `ROLE_SYSTEM_CLIENT`; `IA2_ROLE_EMBEDDED_OBJECT`
+
States: `STATE_SYSTEM_UNAVAILABLE` for windowless plugin
+
UIA +
Control Type: `Pane`
+
ATK +
Role: `ATK_ROLE_EMBEDDED`
+
AXDepends on format of data file
Comments
+

`fieldset`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `fieldset` +
[[wai-aria-1.2]]`group` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Role: Use WAI-ARIA mapping
+
Relations: `IA2_RELATION_LABELLED_BY` with child `legend` element
+
UIA +
+ Role: Use WAI-ARIA mapping +
+
ATK +
Role: Use WAI-ARIA mapping
+
Relations: `ATK_RELATION_LABELLED_BY` with child `legend` element
+
AX +
Role: Use WAI-ARIA mapping
+
AXSubrole: `AXFieldset`
+
+
AXDescription: value from child `legend` subtree
+
+
Comments
+

`figcaption`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `figcaption` +
[[wai-aria-1.2]]`caption` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Roles: `ROLE_SYSTEM_TEXT`; `IA2_ROLE_CAPTION`
+
Relations: `IA2_RELATION_LABEL_FOR` with parent `figure` element
+
UIA +
Control Type: `Text`
+
ATK +
Role: `ATK_ROLE_CAPTION`
+
+ Relations: + `ATK_RELATION_LABEL_FOR` with parent `figure` element +
+
AX +
AXRole: `AXGroup`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `"group"`
+
Comments
+

`figure`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `figure` +
[[wai-aria-1.2]]`figure` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Role: Use WAI-ARIA mapping
+
Relations: `IA2_RELATION_LABELLED_BY` with child `figcaption` element
+
UIA +
Role: Use WAI-ARIA mapping
+
+ Accessible name derived from `figcaption` according to the `figure` Element Accessible Name Computation +
+
ATK +
Role: Use WAI-ARIA mapping
+
Name: related `figcaption` content
+
Relations: `ATK_RELATION_LABELLED_BY` with child `figcaption` element
+
AX +
AXRole: Use WAI-ARIA mapping
+
Comments
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`footer` (scoped to the `body` element)
[[wai-aria-1.2]]`contentinfo` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`footer` (scoped to the `main` element, a sectioning content element)
[[wai-aria-1.2]]`generic` role
Computed Role +
Use WAI-ARIA mapping
+
Editorial Note: This value may change upon resolution of ARIA #1915.
+
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Control Type: `Group`
+
Localized Control Type: `"footer"`
+
ATK +
Role: `ATK_ROLE_FOOTER`
+
AX +
Use WAI-ARIA mapping
+
CommentsIf a `footer` is not scoped to the `body` element, do not expose the element as a `contentinfo` landmark.
+

`form`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `form` +
[[wai-aria-1.2]]`form` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
If a `form` has no accessible name:
+
Role: `ATK_ROLE_FORM`
+
AX +
Use WAI-ARIA mapping
+
CommentsIf a `form` has no accessible name, do not expose the element as a landmark.
+

form-associated custom element

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + form-associated custom element +
[[wai-aria-1.2]]If the author assigned a conforming ARIA role using the `role` attribute, map to that role. Otherwise, the `generic` role.
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`h1`, `h2`, `h3`, `h4`, `h5`, and `h6`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `h1`, `h2`, `h3`, `h4`, `h5`, and `h6` +
[[wai-aria-1.2]] + `heading` role, with the `aria-level` property set to the number in the element's tag + name. +
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`head`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `head` +
[[wai-aria-1.2]]No corresponding role
Computed Role
Not Mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`header` (scoped to the `body` element)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`header` (scoped to the `body` element)
[[wai-aria-1.2]]`banner` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`header` (scoped to the `main` element, or a sectioning content element)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`header` (scoped to the `main` element, or a sectioning content element)
[[wai-aria-1.2]]`generic` role
Computed Role +
Use WAI-ARIA mapping
+
Editorial Note: This value may change upon resolution of ARIA #1915.
+
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Control Type: `Group`
+
Localized Control Type: `"header"`
+
ATK +
Role: `ATK_ROLE_HEADER`
+
AX +
Use WAI-ARIA mapping
+
CommentsIf a `header` is not scoped to the `body` element, do not expose the element as a `banner` landmark.
+

`hgroup`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `hgroup` +
[[wai-aria-1.2]]`group` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments + If an `hgroup` contains multiple heading elements, then the heading element with the highest priority level MAY be treated as the sole heading of the `hgroup`. All other heading + elements MAY instead be exposed as if they were `p` elements. See `paragraph` role on Core AAM. +
+

`hr`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `hr` +
[[wai-aria-1.2]]`separator` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments +

If an `hr` element is a descendant of a `select` element, user agents MAY expose the element with a role of `none`.

+
+

`html`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `html` +
[[wai-aria-1.2]]`document` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`i`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `i` +
[[wai-aria-1.2]]`generic` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
CommentsExposed by platform specific italic text styles.
+

`iframe`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `iframe` +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-iframe
+ MSAA + IAccessible2 + +
Role: `IA2_ROLE_INTERNAL_FRAME`
+
UIA +
Control Type: `Pane`
+
ATK +
Role: `ATK_ROLE_INTERNAL_FRAME`
+
AX +
AXRole: `AXWebArea`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `"html content"`
+
Comments
+

`img`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `img` +
[[wai-aria-1.2]] + `image` + or `img` role +
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments +

ARIA 1.3 adds the `image` role as the preferred synonym to the ARIA 1.0 `img` role. The expected computed role for named `img` elements is now "image".

+
+

`img` (`alt` attribute value is the empty string, i.e. `alt=""` or `alt` with no value in the markup)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `img` + (`alt` attribute value is the empty string, i.e., `alt=""` or `alt` with no value in the markup) +
[[wai-aria-1.2]] + +
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`input` (`type` attribute in the Button state)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + (`type` attribute in the Button state) +
[[wai-aria-1.2]]`button` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`input` (`type` attribute in the Checkbox state)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + (`type` attribute in the Checkbox state) +
[[wai-aria-1.2]] + `checkbox` role, with the `aria-checked` state set to "mixed" if the + element's `indeterminate` IDL attribute is true, or "true" if the element's + checkedness is true, or "false" otherwise +
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`input` (`type` attribute in the Color state)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + (`type` attribute in the Color state) +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-input-color
+ MSAA + IAccessible2 + +
If implemented as a textbox:
+
Roles: `ROLE_SYSTEM_TEXT`
+
If implemented as a color picker:
+
Roles: `IA2_ROLE_COLOR_CHOOSER`
+
UIA +
If implemented as a textbox:
+
Control Type: `Edit`
+
Localized Control Type: "edit"
+
If implemented as a color picker:
+
Control Type: `button`
+
Localized Control Type: "color picker"
+
ATK +
If implemented as a button, use WAI-ARIA mapping for `button`.
+
If implemented as a textbox, use WAI-ARIA mapping for `textbox`.
+
AX +
If implemented as a textbox:
+
AXRole: `AXTextField`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `"text field"`
+
If implemented as a color picker:
+
AXRole: `AXColorWell`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `"color well"`
+
Comments +
+ If implemented as a color picker, any UI controls presented for selecting a color are exposed in the accessibility tree, associated with the `input` element, + and mapped as appropriate for the type of control (e.g. button or slider). +
+
+

`input` (`type` attribute in the Date state)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + (`type` attribute in the Date state) +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-input-date
+ MSAA + IAccessible2 + +
If implemented as a textbox:
+
Role: `ROLE_SYSTEM_TEXT`
+
Object attributes: `text-input-type:date`
+
If implemented as a date picker:
+
Role: `IA2_ROLE_DATE_EDITOR`
+
UIA +
Depends on UI design of implementation. The UI in Windows 10 Edge, for example, is a composite of multiple spinners.
+
ATK +
Role: `ATK_ROLE_CALENDAR`
+
AX +
AXRole: `AXDateField`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `"date field"`
+
Comments
+

`input` (`type` attribute in the Local Date and Time state)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + (`type` attribute in the + Local Date and Time state) +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-input-datetime-local
+ MSAA + IAccessible2 + +
Role: `IA2_ROLE_DATE_EDITOR`
+
UIA +
Depends on UI design of implementation. The UI in Windows 10 Edge, for Example, is a composite of multiple spinners.
+
ATK +
Role: `ATK_ROLE_CALENDAR`
+
AX +
AXRole: `AXTextField`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `"text field"`
+
Comments
+

`input` (`type` attribute in the E-mail state with no suggestions source element)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + (`type` attribute in the E-mail state with no + suggestions source element) +
[[wai-aria-1.2]]`textbox` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
Object attributes: `text-input-type:email`
+
UIA +
Use WAI-ARIA mapping
+
Localized Control Type: `"email"`
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`input` (`type` attribute in the File Upload state)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + (`type` attribute in the File Upload state) +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-input-file
+ MSAA + IAccessible2 + +
Implementation dependent. If represented by a container with a button a text label inside then:
+
Roles: `IA2_ROLE_TEXT_FRAME`
+
Children: `ROLE_SYSTEM_PUSHBUTTON` and `IA2_ROLE_LABEL` for a button and a text label elements.
+
UIA +
Can be rendered as a single button control, or as a button control with a text input field.
+
Button control:
+
Control Type: `Button`
+
Text input field:
+
Control Type: `Edit`
+
Localized Control Type: `"file"`
+
ATK +
Role: `ATK_ROLE_STATIC`
+
+ Children: + `ATK_ROLE_PUSH_BUTTON` when pressed `ATK_ROLE_FILE_CHOOSER` dialog shown +
+
AX +
AXRole: `AXButton`
+
AXSubrole: `AXFileUploadButton`
+
AXRoleDescription: `file upload button`
+
Comments
+

`input` (`type` attribute in the Hidden state)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + (`type` attribute in the Hidden state) +
[[wai-aria-1.2]]No corresponding role
Computed Role
Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`input` (`type` attribute in the Image Button state)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + (`type` attribute in the Image Button state) +
[[wai-aria-1.2]]`button` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`input` (`type` attribute in the Month state)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + (`type` attribute in the Month state) +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-input-month
+ MSAA + IAccessible2 + +
Role: `IA2_ROLE_DATE_EDITOR`
+
UIA +
Depends on UI design of implementation. The UI in Windows 10 Edge, for Example, is a composite of multiple spinners.
+
ATK +
Role: `ATK_ROLE_DATE_EDITOR`
+
AX +
AXRole: `AXTextField`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `"text field"`
+
Comments
+

`input` (`type` attribute in the Number state)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + (`type` attribute in the Number state) +
[[wai-aria-1.2]]`spinbutton` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
+ If implemented as a spin button, use WAI-ARIA mapping for + `spinbutton`. +
+
+ If implemented as a text input, use WAI-ARIA mapping for + `textbox`. +
+
Object attributes: `text-input-type:number`
+
UIA +
If implemented as a spin button, use WAI-ARIA mapping for `spinbutton`.
+
If implemented as a text input:
+
Control Type: `Edit`
+
Localized Control Type: `"number"`
+
ATK +
If implemented as a spin button, use WAI-ARIA mapping for `spinbutton`.
+
If implemented as a text input, use WAI-ARIA mapping for `textbox`.
+
Object attributes: `text-input-type:number`
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`input` (`type` attribute in the Password state)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + (`type` attribute in the Password state) +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-input-password
+ MSAA + IAccessible2 + +
Role: `ROLE_SYSTEM_TEXT`
+
States: `STATE_SYSTEM_PROTECTED`; `IA2_STATE_SINGLE_LINE`; `STATE_SYSTEM_READONLY` if readonly, otherwise `IA2_STATE_EDITABLE`
+
UIA +
Control Type: `Edit`
+
Localized Control Type: `"password"`
+
Other properties: Set `isPassword` to `true`
+
ATK +
Role: `ATK_ROLE_PASSWORD_TEXT`
+
States: `ATK_STATE_SINGLE_LINE`; `ATK_STATE_READ_ONLY` if readonly, otherwise `ATK_STATE_EDITABLE`
+
AX +
AXRole: `AXTextField`
+
AXSubrole: `AXSecureTextField`
+
AXRoleDescription: `"secure text field"`
+
Comments
+

`input` (`type` attribute in the Radio Button state)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + (`type` attribute in the Radio Button state) +
[[wai-aria-1.2]] + `radio` role, with the `aria-checked` state set to "true" if the element's + checkedness is true, or "false" otherwise. With + `aria-setsize` value reflecting number of `type=radio input` elements within the + radio button group + and `aria-posinset` value reflecting the elements position within the + radio button group. +
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`input` (`type` attribute in the Range state)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + (`type` attribute in the Range state) +
[[wai-aria-1.2]]`slider` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`input` (`type` attribute in the Reset Button state)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + (`type` attribute in the Reset Button state) +
[[wai-aria-1.2]]`button` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + (`type` attribute in the Search state + with no suggestions source element) +
[[wai-aria-1.2]]`searchbox` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`input` (`type` attribute in the Submit Button state)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + + (`type` attribute in the Submit Button state) + +
[[wai-aria-1.2]]`button` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`input` (`type` attribute in the Telephone state with no suggestions source element)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + + (`type` attribute in the Telephone state with no + suggestions source element) + +
[[wai-aria-1.2]]`textbox` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
Object attributes: `text-input-type:telephone`
+
UIA +
Use WAI-ARIA mapping
+
Localized Control Type: `"telephone"`
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`input` (`type` attribute in the Text state with no suggestions source element)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + + (`type` attribute in the Text state with + no suggestions source element) + +
[[wai-aria-1.2]]`textbox` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`input` (`type` attribute in the Text, Search, Telephone, URL, or E-mail states with a suggestions source element)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + + (`type` attribute in the Text, + Search, Telephone, + URL, or E-mail states with a + suggestions source element) + +
[[wai-aria-1.2]] + `combobox` role, with the `aria-controls` property set to the same value as the + `list` attribute +
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
Object attributes: `text-input-type:``as per input type`
+
UIA +
Use WAI-ARIA mapping
+
Other properties: `ControllerFor` points to the suggestions source element
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`input` (`type` attribute in the Time state)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + (`type` attribute in the Time state) +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-input-time
+ MSAA + IAccessible2 + +
+ Role: `ROLE_SYSTEM_SPINBUTTON` if implemented as a simple widget; `ROLE_SYSTEM_GROUPING` with child controls mapped as appropriate if + implemented as a complex widget +
+
Object attributes: `text-input-type:time`
+
UIA +
Depends on UI design of implementation. The UI in Windows 10 Edge, for Example, is a composite of multiple spinners.
+
ATK +
+

+ Role: `ATK_ROLE_SPINBUTTON` if implemented as a simple widget.
+ If implemented as a complex widget use:
+ Role: `ROLE_PANEL` and map child controls as appropriate. +

+
+
AX +
AXRole: `AXTimeField`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `"time field"`
+
Comments
+

`input` (`type` attribute in the URL state with no suggestions source element)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + (`type` attribute in the URL state with no + suggestions source element) +
[[wai-aria-1.2]]`textbox` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
Object attributes: `text-input-type:url`
+
UIA +
Use WAI-ARIA mapping
+
Localized Control Type: `"url"`
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`input` (`type` attribute in the Week state)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `input` + (`type` attribute in the Week state) +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-input-week
+ MSAA + IAccessible2 + +
Role: `IA2_ROLE_DATE_EDITOR`
+
Object attributes: `text-input-type:week`
+
UIA +
Depends on UI design of implementation. The UI in Windows 10 Edge, for Example, is a composite of multiple spinners.
+
ATK +
Role: `ATK_ROLE_CALENDAR`
+
AX +
AXRole: `AXTextField`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `"text field"`
+
Comments
+

`ins`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `ins` +
[[wai-aria-1.2]]`insertion` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`kbd`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `kbd` +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-kbd
+ MSAA + IAccessible2 + +
No accessible object.
+
Text attributes: `font-family:monospace` on the text container
+
UIA +
No accessible object. Styles used are exposed by UIA text attribute identifiers of the `TextRange` Control Pattern implemented on a parent accessible object.
+
ATK +
No accessible object. Mapped into "font-family:monospace" text attribute on its text container.
+
AX +
AXRole: `AXGroup`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `"group"`
+
Comments
+

`label`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `label` +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-label
+ MSAA + IAccessible2 + +
Roles: `ROLE_SYSTEM_STATICTEXT`; `IA2_ROLE_LABEL`
+
+ Relations: + `IA2_RELATION_LABEL_FOR` with a labelable element that is child to the `label` or referred to by the `label` element's + `for` attribute. The associated labelable element has `IA2_RELATION_LABELLED_BY` pointing to the `label`. +
+
UIA +
Control Type: `Group`
+
+ Relations: +
+ When the `label` element contains a labelable element, the `LabeledBy` property for the element points to the UIA element for the + `label` element. +
+
+ When the `label` element has a `for` attribute referencing a labelable element, the `LabeledBy` + property for the referenced element points to the UIA element for the `label` element. +
+
+
ATK +
Role: `ATK_ROLE_LABEL`
+
+ Relations: + `ATK_RELATION_LABEL_FOR` for a child labelable element or labelable element referred by + `for` attribute. Note, related labelable element provides `ATK_RELATION_LABELLED_BY` pointing to the `label`. +
+
AX +
AXRole: `AXGroup`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `"group"`
+
Comments
+

`legend`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `legend` +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-legend
+ MSAA + IAccessible2 + +
Roles: `ROLE_SYSTEM_STATICTEXT`; `IA2_ROLE_LABEL`
+
Relations: `IA2_RELATION_LABEL_FOR` with the parent `fieldset`
+
UIA +
Control Type: `Text`
+
+ Other properties: + The `LabeledBy` property for the parent + `fieldset` points to the UIA element for the `legend` element. +
+
ATK +
Role: `ATK_ROLE_LABEL`
+
+ Relations: + `ATK_RELATION_LABEL_FOR` with parent `fieldset` element +
+
AX +
AXRole: `AXGroup`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `"group"`
+
Comments
+

`li`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `li` +
[[wai-aria-1.2]] + `listitem` role with `aria-setsize` value reflecting number of `li` + elements within the parent `ol`, `menu` or `ul` and `aria-posinset` + value reflecting the `li` elements position within the set. +
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments + If `li` element is not a child of `ol` , `menu` or `ul`, or if the containing list element is no longer exposed + with a `list` role, then expose the `li` element with a `generic` role. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `link` +
[[wai-aria-1.2]]No corresponding role
Computed Role
Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`main`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `main` +
[[wai-aria-1.2]]`main` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`map`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `map` +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-map
+ MSAA + IAccessible2 + +
Not mapped if used as an image map. Otherwise,
+
Role: `IA2_ROLE_TEXT_FRAME`
+
UIA +
Not mapped
+
ATK +
Not mapped if used as an image map, otherwise:
+
Role: `ATK_ROLE_STATIC`
+
AX +
+ Role: `AXImageMap` if used as an image map. Otherwise,
+ Role: `AXGroup` if associated with an `img` with no `alt`. Otherwise,
+ not mapped if not associated with an `img`. +
+
Comments
+

`mark`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `mark` +
[[wai-aria-1.2]]`mark` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`math`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `math` +
[[wai-aria-1.2]]See comments
Computed Role
See comments
+ MSAA + IAccessible2 + See comments
UIASee comments
ATKSee comments
AXSee comments
CommentsMapping for `math` is defined by MathML AAM 1.0.
+

`menu`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `menu` +
[[wai-aria-1.2]]`list` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments +
+ The `menu` element is a semantic alternative to the `ul` element. It has no implemented mappings or behavior that reflect the semantics + of the ARIA `menu` role. +
+ +
+

`meta`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `meta` +
[[wai-aria-1.2]]No corresponding role
Computed Role
Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`meter`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `meter` +
[[wai-aria-1.2]]`meter` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`nav`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `nav` +
[[wai-aria-1.2]]`navigation` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`noscript`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `noscript` +
[[wai-aria-1.2]]No corresponding role
Computed Role
Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`object`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `object` +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-object
+ MSAA + IAccessible2 + +
Depends on format of data file. If it contains a plugin then,
+
Role: `IA2_ROLE_EMBEDDED_OBJECT`
+
+ States: + `STATE_SYSTEM_UNAVAILABLE` for windowless plugin +
+
UIA +
Depends on format of data file.
+
ATK +
Depends on format of data file. If contains a plugin then
+
+ Role: + `ATK_ROLE_EMBEDDED` +
+
AXDepends on format of data file.
Comments
+

`ol`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `ol` +
[[wai-aria-1.2]]`list` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`optgroup`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `optgroup` +
[[wai-aria-1.2]]`group` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`option` (in a list of options or represents a suggestion in a `datalist`)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `option` + (in a list of options or represents a suggestion in a `datalist`) +
[[wai-aria-1.2]] + `option` role, with the `aria-selected` state set to "true" if the element's + selectedness is true, or "false" otherwise. +
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`output`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `output` +
[[wai-aria-1.2]]`status` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
Relations: `IA2_RELATION_LABELLED_BY` with associated `label` element
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
Relations: `ATK_RELATION_LABELLED_BY` with associated `label` element
+
AX +
Use WAI-ARIA mapping
+
Comments`AXDescription`: value from associated `label` element subtree.
undefined
+

`p`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `p` +
[[wai-aria-1.2]]`paragraph` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`param`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `param` +
[[wai-aria-1.2]]No corresponding role
Computed Role
Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments`param` is obsolete in HTML
+

`picture`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `picture` +
[[wai-aria-1.2]]No corresponding role
Computed Role
Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`pre`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `pre` +
[[wai-aria-1.2]]`generic` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`progress`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `progress` +
[[wai-aria-1.2]] + `progressbar` role, with, if the progress bar is determinate, the + `aria-valuemax` property set to the maximum value of the progress bar, the + `aria-valuemin` property set to zero, and the `aria-valuenow` property set to the + current value of the progress bar +
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`q`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `q` +
[[wai-aria-1.2]]`generic` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments`::before` and `::after` CSS pseudo content is used by platforms to render the element's quotation marks.
+

`rp`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `rp` +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-rp
+ MSAA + IAccessible2 + +
+ No accessible object. No child elements are exposed if + `ruby` is supported by the browser. +
+
UIA +
No accessible object.
+
ATK +
No accessible object. No child elements are exposed if `ruby` is supported by the browser.
+
AXNot mapped
Comments
+

`rt`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `rt` +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-rt
+ MSAA + IAccessible2 + +
+ No accessible object. No child elements are exposed if + `ruby` is supported by the browser. +
+
UIA +
No accessible object.
+
ATK +
No accessible object.
+
AX +
AXRole: `AXGroup`
+
AXSubrole: `AXRubyText`
+
AXRoleDescription: `"group"`
+
Comments
+

`ruby`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `ruby` +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-ruby
+ MSAA + IAccessible2 + +
Role: `ROLE_SYSTEM_TEXT`; `IA2_ROLE_TEXT_FRAME`
+
UIA +
Control Type: `Text`
+
Localized Control Type: `"ruby"`
+
ATK +
Role: `ATK_ROLE_STATIC`
+
AX +
AXRole: `AXGroup`
+
AXSubrole: `AXRubyInline`
+
AXRoleDescription: `"group"`
+
Comments
+

`s`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `s` +
[[wai-aria-1.2]]`deletion` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`samp`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `samp` +
[[wai-aria-1.2]]`generic` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`script`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `script` +
[[wai-aria-1.2]]No corresponding role
Computed Role
Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `search` +
[[wai-aria-1.2]]`search` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`section`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `section` +
[[wai-aria-1.2]] + `region` role if the `section` element has an accessible name. Otherwise, + the `generic` role. +
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`select` (with a `multiple` attribute or `size` attribute having value greater than `1`)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `select` + + (with a `multiple` attribute or `size` attribute having + value greater than `1`) + +
[[wai-aria-1.2]]`listbox` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`select` (with NO `multiple` attribute and NO `size` attribute having value greater than `1`)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `select` + + (with NO `multiple` attribute and NO `size` attribute + having value greater than `1`) + +
[[wai-aria-1.2]]`combobox` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`slot`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `slot` +
[[wai-aria-1.2]]No corresponding role
Computed Role
Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`small`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `small` +
[[wai-aria-1.2]]`generic` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
CommentsExposed by platform specific font size styles.
+

`source`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `source` +
[[wai-aria-1.2]]No corresponding role
Computed Role
Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`span`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `span` +
[[wai-aria-1.2]]`generic` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`strong`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `strong` +
[[wai-aria-1.2]]`strong` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`style`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `style` +
[[wai-aria-1.2]]No corresponding role
Computed Role
Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments +
+ Note: There are instances where CSS properties can affect what is exposed by accessibility APIs. For instance, `display: none` or `visibility: hidden` will remove an element + from the accessibility tree and hide its presence from assistive technologies. +
+
+

`sub`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `sub` +
[[wai-aria-1.2]]`subscript` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`summary`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `summary` +
[[wai-aria-1.2]]No corresponding role
Computed Role +
+

If the element is the first child of its type within a parent `details` element: `html-summary`

+

+ Otherwise, if it is not the first child of its type of a parent `details` element, or it is not a child of a `details` element: + `generic` role +

+
+
+ MSAA + IAccessible2 + +
Role: `ROLE_SYSTEM_PUSHBUTTON`
+
+ States: + `STATE_SYSTEM_EXPANDED` / `STATE_SYSTEM_COLLAPSED` +
+
Actions: `expand` / `collapse`
+
UIA +
Control Type: `Button`
+
Control Pattern: `ExpandCollapse`
+
ATK +
Role: `ROLE_TOGGLE_BUTTON`
+
Relations: `ATK_RELATION_DETAILS`
+
AX +
AXRole: `AXDisclosureTriangle`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `"disclosure triangle"`
+
Comments + If a `summary` element is not a child of a `details` element, or it is not the first `summary` element of a parent `details`, then the `summary` element MUST be exposed with a + `generic` role. +
+

`sup`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `sup` +
[[wai-aria-1.2]]`superscript` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`svg`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `svg` +
[[wai-aria-1.2]]See comments
Computed Role
See comments
+ MSAA + IAccessible2 + See comments
UIASee comments
ATKSee comments
AXSee comments
CommentsMapping for `svg` is defined by [[[svg-aam-1.0]]]. See also Graphics Accessibility API Role Mappings
+

`table`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `table` +
[[wai-aria-1.2]]`table` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + Use WAI-ARIA mapping
UIAUse WAI-ARIA mapping
ATKUse WAI-ARIA mapping
AXUse WAI-ARIA mapping
Comments
+

`tbody`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `tbody` +
[[wai-aria-1.2]]`rowgroup` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + Use WAI-ARIA mapping
UIAUse WAI-ARIA mapping
ATKUse WAI-ARIA mapping
AXUse WAI-ARIA mapping
Comments
+

`td` (ancestor `table` element has `table` role)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `td` + (ancestor `table` element has `table` role) +
[[wai-aria-1.2]]`cell` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`td` (ancestor `table` element has `grid` or `treegrid` role)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `td` + (ancestor `table` element has `grid` or `treegrid` role) +
[[wai-aria-1.2]]`gridcell` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`template`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `template` +
[[wai-aria-1.2]]No corresponding role
Computed Role
Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`textarea`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `textarea` +
[[wai-aria-1.2]]`textbox` role, with the `aria-multiline` property set to "true"
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`tfoot`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `tfoot` +
[[wai-aria-1.2]]`rowgroup` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`th` (is not a column header, row header, column group header or row group header, and ancestor `table` element has `table` role)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `th` + (is not a column header, row header, + column group header or row group header, and ancestor + `table` element has `table` role) + +
[[wai-aria-1.2]]`cell` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

+ `th` (is not a column header, row header, column group header or row group header, and ancestor `table` element has `grid` or `treegrid` role) +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `th` + (is not a column header, row header, + column group header or row group header, and ancestor + `table` element has + `grid` + or `treegrid` role) + +
[[wai-aria-1.2]]`gridcell` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`th` (is a column header or column group header)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `th` + (is a column header or column group header) +
[[wai-aria-1.2]]`columnheader` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`th` (is a row header or row group header)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `th` + (is a row header or row group header) +
[[wai-aria-1.2]]`rowheader` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`thead`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `thead` +
[[wai-aria-1.2]]`rowgroup` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`time`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `time` +
[[wai-aria-1.2]]`time` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`title`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `title` +
[[wai-aria-1.2]]No corresponding role
Computed Role
Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
CommentsA `title` element provides the accessible name for its document.
+

`tr`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `tr` +
[[wai-aria-1.2]]`row` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`track`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `track` +
[[wai-aria-1.2]]No corresponding role
Computed Role
Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`u`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `u` +
[[wai-aria-1.2]]`generic` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
CommentsExposed by platform specific underline text styles.
+

`ul`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `ul` +
[[wai-aria-1.2]]`list` role
Computed Role
Use WAI-ARIA mapping
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`var`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `var` +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-var
+ MSAA + IAccessible2 + +
No accessible object. Styles used are mapped to text attributes on its text container.
+
UIA +
No accessible object. Styles used are exposed by UIA text attribute identifiers of the `TextRange` Control Pattern implemented on a parent accessible object.
+
ATK +
No accessible object. Styles used are mapped to text attributes on its text container.
+
AX +
AXRole: `AXGroup`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `"group"`
+
Comments
+

`video`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `video` +
[[wai-aria-1.2]]No corresponding role
Computed Role
html-video
+ MSAA + IAccessible2 + +
Role: `ROLE_SYSTEM_GROUPING`
+
UIA +
Control Type: `Group`
+
Localized Control Type: `"group"`
+
+ Note: If the `controls` attribute is present, UI controls (e.g., play, volume) are exposed as children of the + `video` element in the accessibility tree, and mapped as appropriate for the type of control (e.g., + `button` or `slider`). +
+
+ Text objects associated with loading or error messages, and any UI control not currently displayed, MAY be present in the accessibility tree and marked as + hidden or off-screen. +
+
ATK +
Role: `ATK_ROLE_VIDEO`
+
AX +
AXRole: `AXGroup`
+
AXSubrole: `AXVideo`
+
AXRoleDescription: `"video playback"`
+
+ Note: If the `controls` attribute is present, UI controls (e.g., play, volume) are exposed as descendants of an + accessible object with a role of `toolbar`, and mapped as appropriate for the type of control (e.g., + `button` or `slider`). +
+
Comments
+

`wbr`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `wbr` +
[[wai-aria-1.2]]No corresponding role
Computed Role
Not mapped
+ MSAA + IAccessible2 + +
If a line break is added, expose it with `IAccessibleText` on the text container
+
UIA +
Not mapped
+
ATK +
A line break if added is exposed via Text interface on its text container
+
AX +
AXRole: `AXGroup`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `"group"`
+
Comments
+
+
+

HTML Attribute State and Property Mappings

+
    +
  • + HTML attributes with default WAI-ARIA state and property semantics MUST be mapped to platform accessibility APIs according to those WAI-ARIA state and property + mappings as defined in the [[core-aam-1.2]] specification. +
  • +
  • A '?' in a cell indicates the data has yet to be provided.
  • +
  • + "Not mapped" (Not Applicable) means the attribute does not need to be exposed via an accessibility API. This is usually because the attribute is not displayed as + part of the user interface. +
    + In some cases, while not directly exposed to accessibility APIs, an attribute can still impact the accessibility of an element. e.g., `autoplay` will + automatically start playing `video` or `audio` elements. +
    +
  • +
  • All elements having an accessible object in IAccessible2 mapping are supposed to implement IAccessible, IAccessible2 and IAccessible2_2 interfaces.
  • +
+

`abbr`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`abbr`
Element(s) + `th` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
+ Object attributes: + "abbr" until child `abbr` element is provided +
+
UIA +
Not mapped
+
ATK +
+ Object attributes: + "abbr" until child `abbr` element is provided +
+
AX`AXDescription: <value>`
Comments
+

`accept`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`accept`
Element(s) + `input` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`accept-charset`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`accept-charset`
Element(s) + `form` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`accesskey`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`accesskey`
Element(s) + `HTML elements` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
+ A key binding accessible by + `accKeyboardShortcut` + and `IAccessibleAction::keyBinding` +
+
UIA +
Properties: `AccessKey: <value>`
+
ATK +
`atk_action_get_keybinding`
+
AX`AXAccessKey: <value>`
Comments
+

`action`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`action`
Element(s) + `form` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`allow`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`allow`
Element(s) + `iframe` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`allowfullscreen`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`allowfullscreen`
Element(s) + `iframe` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`alt`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`alt`
Element(s) + `area`; `img`; + `input` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + + Used for accessible name, exposed via + `accName` +
UIA +
+ Properties: + `Name` +
+
ATK +
Used for accessible name, exposed via `atk_object_get_name`
+
AX`AXDescription: <value>`
Comments
+

`as`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`as`
Element(s) + `link` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`async`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`async`
Element(s) + `script` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`autocapitalize`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`autocapitalize`
Element(s) + HTML elements +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`autocomplete`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`autocomplete`
Element(s) + `form` +
[[WAI-ARIA-1.2]] +

`aria-autocomplete`

+
Note: the ARIA attribute and the HTML attribute have disparate features.
+
+ MSAA + IAccessible2 + +
+ States: + `STATE_SUPPORTS_AUTOCOMPLETION` on text form controls until the value is overridden by control +
+
UIA +
Not mapped
+
ATK +
+ States: + `ATK_STATE_SUPPORTS_AUTOCOMPLETION` on text form controls until the value is overridden by control +
+
AX +
Not mapped
+
Comments + If the element includes both `autocomplete` and `aria-autocomplete` attributes with valid values, User Agents MUST expose only the `autocomplete` attribute value. The + `aria-autocomplete` attribute is not valid on a `form` element. +
+

`autocomplete`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`autocomplete`
Element(s) + `input`, `select` and `textarea` +
[[WAI-ARIA-1.2]] +

`aria-autocomplete`

+
Note: the ARIA attribute and the HTML attribute have disparate features.
+
+ MSAA + IAccessible2 + +
States: `STATE_SUPPORTS_AUTOCOMPLETION`
+
UIA +
Not mapped
+
ATK +
States: `ATK_STATE_SUPPORTS_AUTOCOMPLETION`
+
AX +
Not mapped
+
CommentsIf the element includes both `autocomplete` and `aria-autocomplete` attributes with valid values, User Agents MUST expose only the `autocomplete` attribute value.
+

`autofocus`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`autofocus`
Element(s) + HTML elements +
[[WAI-ARIA-1.2]]Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`autoplay`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`autoplay`
Element(s) + `audio` and `video` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`blocking`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`blocking`
Element(s) + `link`; `script`; + `style` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`charset`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`charset`
Element(s) + `meta` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`checked` (if present)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`checked` (if present)
Element(s)`input` `type=checkbox` or `type=radio`
[[WAI-ARIA-1.2]]`aria-checked`="true"
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIAProperty: `Toggle.ToggleState: On (1)`
ATK +
Use WAI-ARIA mapping
+
AX`AXValue: 1`
Comments + If an `input` element in the `checkbox` or `radio` state includes both the `checked` attribute and the `aria-checked` attribute with a valid value, User Agents MUST expose only the + `checked` attribute value. +
+

`checked` (if absent)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`checked` (if absent)
Element(s)`input` `type=checkbox` or `type=radio`
[[WAI-ARIA-1.2]]`aria-checked`="false"
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIAProperty: `Toggle.ToggleState: Off (0)`
ATK +
Use WAI-ARIA mapping
+
AX`AXValue: 0`
Comments + An `input` element in the `checkbox` or `radio` state without a `checked` attribute has an implicit "false" state. User Agents MUST ignore an `aria-checked` attribute which conflicts + with the native element's implicit checked state. +
+

`cite`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`cite`
Element(s) + `blockquote`; `del` and `ins`; + `q` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX`AXURL: <value>`
Comments
+

`class`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`class`
Element(s) + HTML elements +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`color`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`color`
Element(s) + `link` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`cols`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`cols`
Element(s) + `textarea` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX`AXRangeForLine: <value>`
Comments +
Not mapped
+
+

`colspan`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`colspan`
Element(s) + `td` and `th` +
[[WAI-ARIA-1.2]] + `aria-colspan` +
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`content`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`content`
Element(s) + `meta` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`contenteditable`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`contenteditable`
Element(s) + HTML elements +
[[WAI-ARIA-1.2]]Not mapped
+ MSAA + IAccessible2 + +

+ If the element is in the editable state, the following mappings apply to the element and every nested accessible object with the exception of those which have been specified in the + `false` state. +

+
+ States: + `IA2_STATE_EDITABLE` and `IA2_STATE_MULTI_LINE` +
+
+ Interfaces: + `IAccessibleEditableText` +
+

If the element is in the `false` state: not mapped.

+

If the element is in the `inherit` state: match the editable state of its parent element.

+
UIA +

+ If the element is in the editable state, the following mappings apply to the element and every nested accessible object with the exception of those which have been specified in the + `false` state. +

+
Control Pattern: `TextEdit`
+
Property: `AriaProperties.multiline:true`
+

If the element is in the `false` state: not mapped.

+

If the element is in the `inherit` state: match the editable state of its parent element.

+
ATK +

+ If the element is in the editable state, the following mappings apply to the element and every nested accessible object with the exception of those which have been specified in the + `false` state. +

+
+ States: + `ATK_STATE_EDITABLE` and `ATK_STATE_MULTI_LINE` +
+
Interfaces: `AtkEditableText`
+

If the element is in the `false` state: not mapped.

+

If the element is in the `inherit` state: match the editable state of its parent element.

+
AX + Role: + AXTextArea +
Use WAI-ARIA mapping
+
CommentsIf the element is set to `contenteditable` and `aria-readonly="true"`, User Agents MUST expose only the `contenteditable` state.
+

`controls`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`controls`
Element(s) + `audio` and `video` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AXControls exposed as `AXToolbar`
Comments
+

`coords`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`coords`
Element(s) + `area` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Defines an accessible object's dimensions (`IAccessible::accLocation`)
+
UIA +
Defines an accessible object's dimensions (`BoundingRectangle`)
+
ATK +
Defines an accessible object's dimensions, exposed via `atk_component_get_position` and `atk_component_get_size`
+
AX +
Defines an accessible object's dimensions, exposed via `Frame` property
+
Comments
+

`crossorigin`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`crossorigin`
Element(s) + `audio`; `img`; + `link`; `script`; + `video` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`data`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`data`
Element(s) + `object` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`datetime`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`datetime`
Element(s) + `del` and `ins` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Object attributes: `datetime: <value>`
+
UIA +
Not mapped
+
ATK +
Object attributes: `datetime: <value>`
+
AX`AXDateTimeValue: <value>`
Comments
+

`datetime`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`datetime`
Element(s) + `time` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Object attributes: `datetime: <value>`
+
UIA +
Properties: `FullDescription: <value>`
+
ATK +
Object attributes: `datetime: <value>`
+
AX`AXDateTimeValue: <value>`
Comments
+

`decoding`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`decoding`
Element(s) + `img` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`default`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`default`
Element(s) + `track` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`defer`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`defer`
Element(s) + `script` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`dir`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`dir`
Element(s) + HTML elements +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Exposed as "writing-mode" text attribute on the text container.
+
UIA +
Exposed by `TextFlowDirections` attribute of the `TextRange` Control Pattern implemented on a parent accessible object.
+
ATK +
Exposed as "writing-mode" text attribute on the text container.
+
AX +
Not mapped
+
Comments
+

`dir`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`dir`
Element(s) + `bdo` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Exposed as "writing-mode" text attribute on the text container.
+
UIA +
Exposed by `TextFlowDirections` attribute of the `TextRange` Control Pattern implemented on a parent accessible object.
+
ATK +
Exposed as "writing-mode" text attribute on the text container.
+
AX +
Not mapped
+
Comments
+

`dirname`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`dirname`
Element(s) + `input` and `textarea` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`disabled`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`disabled`
Element(s) + `button`; `input`; + `optgroup`; `option`; + `select`; `textarea`; + form-associated custom element +
[[WAI-ARIA-1.2]] + `aria-disabled="true"` +
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
CommentsIf the element has both the `disabled` attribute and the `aria-disabled` attribute with a valid value, User Agents MUST expose only the `disabled` attribute value.
+

`disabled`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`disabled`
Element(s) + `fieldset` +
[[WAI-ARIA-1.2]] + `aria-disabled="true"` +
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments +

Form controls within a valid [^legend^] child element of a `fieldset` with a `disabled` attribute do not become disabled.

+

If the element has both the `disabled` attribute and the `aria-disabled` attribute with a valid value, User Agents MUST expose only the `disabled` attribute value.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`disabled`
Element(s) + `link` +
[[WAI-ARIA-1.2]]Not mapped
+ MSAA + IAccessible2 + Not mapped
UIANot mapped
ATKNot mapped
AXNot mapped
Comments
+

`download`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`download`
Element(s) + `a` and `area` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`draggable`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`draggable`
Element(s) + HTML elements +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Object attributes: draggable:true
+
UIA +
Not mapped
+
ATK +
Object attributes: draggable:true
+
AX +
Not mapped
+
Comments
+

`enctype`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`enctype`
Element(s) + `form` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`enterkeyhint`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`enterkeyhint`
Element(s) + HTML elements +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments + Modifies the action label (or icon) to present for the + enter key on virtual keyboards. +
+

`fetchpriority`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`fetchpriority`
Element(s) + `img`; `link`; + `script` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`for`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`for`
Element(s) + `label` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + + +
+ Relations: + `IA2_RELATION_LABEL_FOR` and `IA2_RELATION_LABEL_BY` relations between + `label` and referred labelable element +
+
UIA + +
+ When the `label` element has a `for` attribute referencing another labelable element, the `LabeledBy` property for the referenced + element points to the UIA element for the `label` element. +
+
ATK + +
+ Relations: + `ATK_RELATION_LABEL_FOR` and `ATK_RELATION_LABEL_BY` relations between + `label` and referred labelable element +
+
AX + +
Comments
+

`for`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`for`
Element(s) + `output` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
+ Relations: + `IA2_RELATION_CONTROLLED_BY` with an element pointed by the attribute. Paired element exposes `IA2_RELATION_CONTROLLER_FOR` relation. +
+
UIA +
Not mapped
+
ATK +
+ Relations: + `ATK_RELATION_CONTROLLED_BY` with an element pointed by the attribute. Paired element exposes `ATK_RELATION_CONTROLLER_FOR` relation. +
+
AX +
Not mapped
+
Comments
+

`form`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`form`
Element(s) + `button`; `fieldset`; + `input`; `label`; + `object`; `output`; + `select`; `textarea`; + form-associated custom element +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`formaction`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`formaction`
Element(s) + `button`; + `input` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`formenctype`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`formenctype`
Element(s) + `button`; + `input` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`formmethod`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`formmethod`
Element(s) + `button`; + `input` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`formnovalidate`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`formnovalidate`
Element(s) + `button`; + `input` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`formtarget`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`formtarget`
Element(s)`button`; `input`
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`headers`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`headers`
Element(s) + `td`; + `th` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Links the cell to its header cells. Exposed via `IAccessibleTableCell::rowHeaderCells` and `IAccessibleTableCell::columnHeaderCells`.
+
UIA +
Links the cell to its header cells. Exposed via `Table.ItemColumnHeaderItems` and `Table.ItemRowHeaderItems`.
+
ATK +
+ Links the cell to its row and column header cells (note, only one row and one column header cells can be exposed because of API + restrictions). See `atk_table_get_row_header` and `atk_table_get_column_header`. +
+
AXExpose via `AXColumnHeaderUIElements` and `AXRowHeaderUIElements`
Comments
+

`height`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`height`
Element(s) + `canvas`; `embed`; + `iframe`; `img`; + `input`; `object`; + `source` (in `picture`); + `video` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Defines an accessible object's height (`IAccessible::accLocation`)
+
UIA +
Defines an accessible object's height (`BoundingRectangle`)
+
ATK +
Defines an accessible object's height (`atk_component_get_size`)
+
AX +
Defines an accessible object's height (`AXSize` property)
+
Comments
+

`hidden`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `hidden` +
Element(s) + HTML elements +
[[WAI-ARIA-1.2]] + `aria-hidden="true"` if the element retains its user agent default styling of `display: none`. Otherwise, if no other method for + hiding the content is used (e.g., `visibility: hidden`) then it is not mapped. +
+ MSAA + IAccessible2 + Use WAI-ARIA mapping
UIAUse WAI-ARIA mapping
ATKUse WAI-ARIA mapping
AXUse WAI-ARIA mapping
Comments
+

`high`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`high`
Element(s) + `meter` +
[[WAI-ARIA-1.2]]Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA`RangeValue.Maximum`
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`href`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification + `href` +
Element(s)`a`; `area`
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
+ Creates a link accessible object. For details, refer to + `a` and `area` element mappings. +
+
UIA + Creates a link accessible object. For details, refer to + `a` and `area` element mappings. The value of the `href` attribute is stored in the `Value.Value` UIA property. +
ATK +
+ Creates a link accessible object. For details, refer to + `a` and `area` element mappings. +
+
AX`AXURL: <value>`
Comments
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`href`
Element(s) + `link` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`hreflang`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`hreflang`
Element(s) + `a`; + `link` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`http-equiv`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`http-equiv`
Element(s) + `meta` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`id`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`id`
Element(s) + HTML elements +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`inert`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`inert`
Element(s) + HTML elements +
[[WAI-ARIA-1.2]]Not Mapped
+ MSAA + IAccessible2 + See comments
UIASee comments
ATKSee comments
AXSee comments
Comments +

Nodes that are inert are not exposed to an accessibility API.

+

+ Note: an inert node can have descendants that are not inert. For example, a + modal dialog + can escape an inert subtree. +

+
+

`indeterminate [IDL]`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`indeterminate [IDL]`
Element(s) + HTML elements; + `input` +
[[WAI-ARIA-1.2]]`aria-checked` (state)="mixed"
+ MSAA + IAccessible2 + Use WAI-ARIA mapping
UIAUse WAI-ARIA mapping
ATKUse WAI-ARIA mapping
AXUse WAI-ARIA mapping
CommentsIf the element has the `indeterminate [IDL]` set and the `aria-checked` attribute set, User Agents MUST expose only the `indeterminate [IDL]` state.
+

`ismap`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`ismap`
Element(s) + `img` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`itemid`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`itemid`
Element(s) + `img` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`itemprop`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`itemprop`
Element(s) + `img` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`itemref`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`itemref`
Element(s) + `img` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`itemscope`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`itemscope`
Element(s) + `img` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`itemtype`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`itemtype`
Element(s) + `img` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`kind`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`kind`
Element(s) + `track` +
[[WAI-ARIA-1.2]]Not mapped
+ MSAA + IAccessible2 + Not mapped
UIANot mapped
ATKNot mapped
AXNot mapped
Comments
+

`label`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`label`
Element(s) + `optgroup`; `option`; + `track` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Associates the accessible name
+
UIA + The target element of the `label` attribute has a `LabeledBy` property pointing to the element with the `label` attribute. Participates in + name computation. +
ATK +
Associates the accessible name
+
AX`AXTitle`: `<value>`
CommentsSee Also: Accessible Name and Description: Computation and API Mappings 1.1
+

`lang`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`lang`
Element(s) + HTML elements +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Exposed as "language" text attribute on the text container
+
UIA +
+ The value of the `lang` attribute is exposed as a locale identifier by `Culture` property of the UIA element representing the HTML element, and by `Culture` attribute of the + `TextRange` Control Pattern implemented on a parent accessible object. +
+
ATK +
Exposed as "language" text attribute on the text container
+
AX`AXLanguage: <value>`
Comments
+

`list`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`list`
Element(s) + `input` +
[[WAI-ARIA-1.2]] + `aria-controls` +
+ MSAA + IAccessible2 + +
`IA2_RELATION_CONTROLLER_FOR` point to the `datalist` element referred to by the IDREF value of the `list` attribute.
+
UIA +
`ControllerFor` point to the `datalist` element referred to by the IDREF value of the `list` attribute.
+
ATK +
`ATK_RELATION_CONTROLLER_FOR` point to the `datalist` element referred to by the IDREF value of the `list` attribute.
+
AX +
Property: `AXLinkedUIElements`: point to the `datalist` element referred to by the IDREF value of the `list` attribute.
+
CommentsRefer to `datalist` and `input` element mappings.
+

`loop`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`loop`
Element(s) + `audio`; + `video` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`low`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`low`
Element(s) + `meter` +
[[WAI-ARIA-1.2]]Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
`RangeValue.Minimum`
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`max`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`max`
Element(s) + `input` +
[[WAI-ARIA-1.2]] + `aria-valuemax` +
+ MSAA + IAccessible2 + +
Exposed as `IAccessibleValue::maximumValue` if the element implements the interface
+
UIA`RangeValue.Maximum`
ATK +
Exposed as `atk_value_get_maximum_value` if the element implements the `AtkValue` interface
+
AX`AXMaxValue: <value>`
Comments
+

`max`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`max`
Element(s) + `meter`; + `progress` +
[[WAI-ARIA-1.2]] + `aria-valuemax` +
+ MSAA + IAccessible2 + +
Exposed as `IAccessibleValue::maximumValue` if the element implements the interface
+
UIA`RangeValue.Maximum`
ATK +
Exposed as `atk_value_get_maximum_value` if the element implements the `AtkValue` interface
+
AX`AXMaxValue: <value>`
Comments
+

`maxlength`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`maxlength`
Element(s) + `input`; + `textarea` +
[[WAI-ARIA-1.2]]Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`media`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`media`
Element(s) + `link`; `meta`; + `source` (in `picture`); + `style` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`method`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`method`
Element(s) + `form` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`min`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`min`
Element(s) + `input` +
[[WAI-ARIA-1.2]] + `aria-valuemin` +
+ MSAA + IAccessible2 + +
Exposed as `IAccessibleValue::minimumValue` if the element implements the interface
+
UIA`RangeValue.Minimum`
ATK +
Exposed as `atk_value_get_minimum_value` if the element implements the `AtkValue` interface
+
AX`AXMinValue: <value>`
Comments
+

`min`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`min`
Element(s) + `meter` +
[[WAI-ARIA-1.2]] + `aria-valuemin` +
+ MSAA + IAccessible2 + +
Exposed as `IAccessibleValue::minimumValue` if the element implements the interface
+
UIA`RangeValue.Minimum`
ATK +
Exposed as `atk_value_get_minimum_value` if the element implements the `AtkValue` interface
+
AX`AXMinValue: <value>`
Comments
+

`minlength`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`minlength`
Element(s) + `input`; + `textarea` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
+ States: + `IA2_STATE_INVALID_ENTRY` if value doesn't meet the designated minimum length value. +
+
UIA +
+ States: + `IsDataValidForForm` if value doesn't meet the designated minimum length value. +
+
ATK +
+ States: + `ATK_STATE_INVALID_ENTRY` if value doesn't meet the designated minimum length value. +
+
AX +
+ Property: + `AXInvalid`: `true` if value doesn't meet the designated minimum length value. +
+
Comments
+

`multiple`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`multiple`
Element(s) + `input` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`multiple`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`multiple`
Element(s) + `select` +
[[WAI-ARIA-1.2]] + `aria-multiselectable="true"` +
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`muted`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`muted`
Element(s) + `audio`; + `video` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`name`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`name`
Element(s) + `button`; `fieldset`; + `input`; `output`; + `select`; `textarea`; + form-associated custom element +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`name`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`name`
Element(s) + `form` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`name`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`name`
Element(s) + `iframe`; + `object` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`name`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`name`
Element(s) + `map` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`name`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`name`
Element(s) + `meta` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`name`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`name`
Element(s) + `slot` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`nomodule`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`nomodule`
Element(s) + `script` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`nonce`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`nonce`
Element(s) + HTML elements +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`novalidate`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`novalidate`
Element(s) + `form` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`open`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`open`
Element(s) + `details` +
[[WAI-ARIA-1.2]]`aria-expanded`="true | false"
+ MSAA + IAccessible2 + `STATE_SYSTEM_EXPANDED`
`STATE_SYSTEM_COLLAPSED`
UIA + `ExpandCollapsePattern` +
ATK +
+ States: + `ATK_STATE_COLLAPSED` or `ATK_STATE_EXPANDED` depending on the attribute value +
+
AX`AXExpanded: YES|NO`
CommentsSet properties on the `summary` element.
+

`open`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`open`
Element(s) + `dialog` +
[[WAI-ARIA-1.2]] +
+ If the `open` attribute is set via the `showModal()` method then `aria-modal="true"` and + `aria-hidden="false"`. +
+
+ Otherwise, if the `open` attribute is set via the `show()` method, or explicitly specified by an author, then + `aria-modal="false"` and `aria-hidden="false"`. +
+
+ MSAA + IAccessible2 + Use WAI-ARIA mapping
UIAUse WAI-ARIA mapping
ATKUse WAI-ARIA mapping
AXUse WAI-ARIA mapping
Comments +

The `open` attribute's value is irrelevant. When the `open` attribute is not specified the default user agent styling for a `dialog` is `display: none`.

+

+ Authors can reveal a `dialog` through the style layer by modifying its `display` property. If revealed this way then the `dialog` is + `aria-modal="false"` and `aria-hidden="false"`. +

+
+

`optimum`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`optimum`
Element(s) + `meter` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`pattern`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`pattern`
Element(s) + `input` +
[[WAI-ARIA-1.2]] +
+ If the value doesn't match the pattern: `aria-invalid="true"`; Otherwise, + `aria-invalid="false"` +
+
+ MSAA + IAccessible2 + Use WAI-ARIA mapping
UIAUse WAI-ARIA mapping
ATKUse WAI-ARIA mapping
AXUse WAI-ARIA mapping
Comments
+

`ping`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`ping`
Element(s) + `a` and `area` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`placeholder`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`placeholder`
Element(s) + `input`; + `textarea` +
[[WAI-ARIA-1.2]] + `aria-placeholder` +
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments +
+ When the `placeholder` and `aria-placeholder` attributes are both present, and the `placeholder` attribute's value is non-empty, user agents MUST expose the value of the + `placeholder` attribute, and ignore `aria-placeholder`. If the `placeholder` attribute's value is empty, then user agents MUST expose the value of the `aria-placeholder` attribute. +
+
+

`playsinline`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`playsinline`
Element(s) + `video` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`poster`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`poster`
Element(s) + `video` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`preload`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`preload`
Element(s) + `audio` and `video` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`readonly`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`readonly`
Element(s) + `input`; `textarea`; + form-associated custom elements +
[[WAI-ARIA-1.2]] + `aria-readonly="true"` +
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
CommentsIf the element includes both the `readonly` attribute and the `aria-readonly` attribute with a valid value, User Agents MUST expose only the `readonly` attribute value.
+

`referrerpolicy`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`referrerpolicy`
Element(s) + `a`; `area`; + `iframe`; `img`; + `link`; + `script` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`rel`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`rel`
Element(s) + `a`; `area`; + `link` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`required`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`required`
Element(s) + `input`; `select`; + `textarea` +
[[WAI-ARIA-1.2]] + `aria-required` +
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments +

If the element includes both the `required` attribute and the `aria-required` attribute with a valid value, User Agents MUST expose only the `required` attribute value.

+

+ If an element is required, user agents MUST NOT expose the element with an intitial invalid state (`aria-invalid="true"`). The user agent SHOULD expose the invalid state only after 1) a user has purposefully interacted with a required element, or attempted to submit a form and + 2) the element, or elements, do not meet constraint validation. +

+

Until these conditions are met, user agents MUST expose the elements as (`aria-invalid="false"`).

+
+

`reversed`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`reversed`
Element(s) + `ol` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Reverses the numerical or alphabetical order of the child list item markers.
+
UIA +
Reverses the numerical or alphabetical order of the child list item markers.
+
ATK +
Reverses the numerical or alphabetical order of the child list item markers.
+
AX +
Reverses the numerical or alphabetical order of the child list item markers.
+
Comments
+

`rows`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`rows`
Element(s) + `textarea` +
[[WAI-ARIA-1.2]]Not mapped
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`rowspan`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`rowspan`
Element(s) + `td`; + `th` +
[[WAI-ARIA-1.2]] + `aria-rowspan` +
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`sandbox`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`sandbox`
Element(s) + `iframe` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`scope`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`scope`
Element(s) + `th` +
[[WAI-ARIA-1.2]] +
If `scope="row"` then map `th` to `rowheader`
+
If `scope="col"` then map `th` to `columnheader`
+
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`selected`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`selected`
Element(s) + `option` +
[[WAI-ARIA-1.2]] + `aria-selected="true"` +
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
CommentsIf the element includes both the `selected` attribute and the `aria-selected` attribute with a valid value, User Agents MUST expose only the `selected` attribute value.
+

`shape`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`shape`
Element(s) + `area` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`size`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`size`
Element(s) + `input`; + `select` +
[[WAI-ARIA-1.2]] +
Not mapped for `input` elements.
+
If greater than 1, then creates a listbox accessible object. Refer to `select` element for details.
+
+ MSAA + IAccessible2 + +
Not mapped for `input` elements.
+
For `select` element use WAI-ARIA mapping.
+
UIA +
Not mapped for `input` elements.
+
For `select` element use WAI-ARIA mapping.
+
ATK +
Not mapped for `input` elements.
+
For `select` element use WAI-ARIA mapping.
+
AX +
Not mapped for `input` elements.
+
For `select` element use WAI-ARIA mapping.
+
Comments + For `input` elements that allow the `size` attribute, the attribute will modify their default width. A width provided by CSS will negate the effects of the `size` attribute on these + `input` elements. +
+

`sizes`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`sizes`
Element(s) + `link` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`sizes`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`sizes`
Element(s) + `img`; + `source` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`slot`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`slot`
Element(s) + HTML elements +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`span`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`span`
Element(s) + `col`; + `colgroup` +
[[WAI-ARIA-1.2]]Not mapped
+ MSAA + IAccessible2 + +
Exposed as `IAccessibleTableCell::columnExtent` on all cells at the column
+
UIA +
Exposed as `GridItem.ColumnSpan` on all cells at the column
+
ATK +
Exposed via `atk_table_get_column_extent_at`
+
AX +
`AXColumnIndexRange.length: <value>`
+
Comments
+

`spellcheck`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`spellcheck`
Element(s) + HTML elements +
[[WAI-ARIA-1.2]] + `aria-invalid="spelling"` or `grammar` +
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`src`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`src`
Element(s) + `audio`; `embed`; + `iframe`; `img`; + `input`; `script`; + `source` (in `audio` or `video`); `track`; + `video` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
+ Object attributes: + `src` on `img` only +
+
UIA +
Not mapped
+
ATK +
+ Object attributes: + `src` on `img` only +
+
AX`AXURL: <value>` on `img` and `input type="image"`
Comments
+

`srcdoc`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`srcdoc`
Element(s) + `iframe` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`srclang`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`srclang`
Element(s) + `track` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`srcset`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`srcset`
Element(s) + `img`; + `source` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not Mapped
+
Comments
+

`start`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`start`
Element(s) + `ol` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Changes the first number of the child list item accessible objects to match the `start` attribute's value.
+
UIA +
Changes the first number of the child list item accessible objects to match the `start` attribute's value.
+
ATK +
Changes the first number of the child list item accessible objects to match the `start` attribute's value.
+
AX +
Changes the first number of the child list item accessible objects to match the `start` attribute's value.
+
Comments
+

`step`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`step`
Element(s) + `input` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIAIf the `input` is in the `Range` state, set both `RangeValue.SmallChange` and `RangeValue.LargeChange` to the value of `step`.
ATK +
Exposed as `atk_value_get_minimum_increment` if the element implements the `AtkValue` interface.
+
AXNot mapped
Comments
+

`style`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`style`
Element(s) + HTML elements +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`tabindex`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`tabindex`
Element(s) + HTML elements +
[[WAI-ARIA-1.2]] + See Focus States and Events Table +
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments
+

`target`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`target`
Element(s) + `a`; + `area` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`target`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`target`
Element(s) + `base` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`target`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`target`
Element(s) + `form` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`title`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`title`
Element(s) + HTML elements +
[[WAI-ARIA-1.2]] +
+ Either the accessible name, or the accessible description, or Not + mapped (see Comments). +
+
+ MSAA + IAccessible2 + +
Use WAI-ARIA mapping
+
UIA +
Use WAI-ARIA mapping
+
ATK +
Use WAI-ARIA mapping
+
AX +
Use WAI-ARIA mapping
+
Comments +
+ The Accessible Name and Description Computation section specifies if the `title` attribute will be mapped and, if so, + through what [[WAI-ARIA]] property. +
+
+

`title`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`title`
Element(s) + `abbr`; + `dfn` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Associates the accessible name
+
UIA +
Associates the accessible name
+
ATK +
Associates the accessible name
+
AX`AXExpandedTextValue: <value>`
Comments
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`title`
Element(s) + `link` +
[[WAI-ARIA-1.2]]Not mapped
+ MSAA + IAccessible2 + Not mapped
UIANot mapped
ATKNot mapped
AXNot mapped
Comments
+

`title`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`title`
Element(s)`link`; `style`
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
CommentsProvides the name for the CSS style sheet.
+

`translate`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`translate`
Element(s) + HTML elements +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`type`
Element(s) + `a`; + `link` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`type`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`type`
Element(s) + `button` +
[[WAI-ARIA-1.2]]Not mapped
+ MSAA + IAccessible2 + +
`submit` type may be a default button in the form.
+
UIA +
`submit` type may be a default button in the form.
+
ATK +
`submit` type may be a default button in the form.
+
AX +
`submit` type may be a default button in the form.
+
Comments
+

`type`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`type`
Element(s) + `embed`; `object`; + `script`; + `source` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`type`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`type`
Element(s) + `input` +
[[WAI-ARIA-1.2]]Refer to WAI-ARIA mappings for input types with defined ARIA roles.
+ MSAA + IAccessible2 + +
+ Defines the accessible role, states and other properties, refer to type="`text`", type="`password`", type="`button`", etc +
+
UIA +
+ Defines the accessible role, states and other properties, refer to type="`text`", type="`password`", type="`button`", etc +
+
ATK +
+ Defines the accessible role, states and other properties, refer to type="`text`", type="`password`", type="`button`", etc +
+
AX +
+ Defines the accessible role, states and other properties, refer to type="`text`", type="`password`", type="`button`", etc +
+
Comments
+

`type`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`type`
Element(s) + `ol` +
[[WAI-ARIA-1.2]]Not mapped
+ MSAA + IAccessible2 + +
+ Defines the list item marker, which has no accessible object, but is exposed as content in the accessible text of the associated list item. +
+
Interfaces: `IAccessibleText2`
+
UIA +
+ Defines the list item marker, which has no accessible object, but is exposed as content in the accessible text of the associated list item. +
+
Control Pattern: `Text`
+
ATK +
+ Defines the list item marker, which has no accessible object, but is exposed as content in the accessible text of the associated list item. +
+
Interfaces: `ATKText`
+
AX +
Defines the list item marker, which is exposed as content in `AXValue`, and rendered as an accessible object:
+
AXRole: `AXListMarker`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `"list marker"`
+
Comments +
+ Some platforms (IAccessible2, ATK, UIA) do not expose an accessible object for the list item marker, whether it was created and then pruned from the + accessibility tree, or never created in the first place. Instead, they expose the list item marker as part of the associated list item's accessible text. In + these cases, implementors need to consider such things as adjusting the offsets (e.g., for caret-moved events, text-selection events, etc.) for the updated list item text that now + also contains the list item marker as content, rather than just taking the offsets unmodified from the list item renderer. +
+
+

`usemap`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`usemap`
Element(s) + `img` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Responsible for image map creation.
+
UIA +
Responsible for image map creation.
+
ATK +
Responsible for image map creation.
+
AX +
Responsible for image map creation.
+
CommentsRefer to `img` element.
+

`value`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`value`
Element(s) + `button`; + `option` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`value`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`value`
Element(s) + `data` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+

`value`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`value`
Element(s) + `input` +
[[WAI-ARIA-1.2]]Not mapped
+ MSAA + IAccessible2 + +
+ Associates the accessible value for entry type input elements and accessible name for button type input elements +
+
UIA +
+ Associates the accessible value for entry type input elements and accessible name for button type input elements +
+
ATK +
+ Associates the accessible value for entry type input elements and accessible name for button type input elements +
+
AX`AXValue: <value>`
Comments
+

`value`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`value`
Element(s) + `li` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Exposed as first text node of `li`'s accessible object.
+
UIA +
+ Expose the value of the `value` attribute as the first text node in the list item. If the value of the `value` attribute is an integer, set the UIA `PositionInSet` property to the + integer value. +
+
ATK +
Exposed as first text node of `li`'s accessible object.
+
AX +
Exposed as `AXValue: <value>` with accessible object:
+
AXRole: `AXListMarker`
+
AXSubrole: `(nil)`
+
AXRoleDescription: `list marker`
+
Comments
+

`value`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`value`
Element(s) + `meter`; + `progress` +
[[WAI-ARIA-1.2]] + `aria-valuenow` +
+ MSAA + IAccessible2 + +
Exposed as `IAccessibleValue::currentValue`
+
UIA +
Exposed as `Value.Value`
+
ATK +
Exposed as `atk_value_get_current_value`
+
AX +
`AXValue: <value>`
+
Comments
+

`width`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`width`
Element(s) + `canvas`; `embed`; + `iframe`; `img`; + `input`; `object`; + `source` (in `picture`); + `video` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Defines an accessible object's width (`IAccessible::accLocation`)
+
UIA +
Defines an accessible object's width (`BoundingRectangle`)
+
ATK +
Defines an accessible object's width (`atk_component_get_size`)
+
AX + AXSize: w=n +
Comments
+

`wrap`

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML Specification`wrap`
Element(s) + `textarea` +
[[WAI-ARIA-1.2]] +
Not mapped
+
+ MSAA + IAccessible2 + +
Not mapped
+
UIA +
Not mapped
+
ATK +
Not mapped
+
AX +
Not mapped
+
Comments
+
+
+
+

Accessible Name and Description Computation

+

+ The terms accessible name and accessible description are properties provided in + all accessibility APIs. The name of the properties may differ across APIs but they serve the same function: as a container for a short (name) or longer (description) + string of text. +

+

+ The text alternative computation is used to generate both the accessible name and + accessible description. There are different rules provided for several different types of + elements, nodes, and combinations of markup. +

+

+ User Agents notify assistive technology when relevant accessibility information changes, sometimes by destroying and recreating the accessibility object, or sometimes by notifying of changes + to the object per the specified + name change event mappings and description change event mappings. +

+
+

Accessible Name Computations By HTML Element

+
+

+ `input type="text"`, `input type="password"`, `input type="number"`, `input type="search"`,` input type="tel"`, `input type="email"`, `input type="url"` and `textarea` Element Accessible + Name Computation +

+
    +
  1. + If the control has an `aria-label` or an `aria-labelledby` attribute the + accessible name is to be calculated using the algorithm defined in + Accessible Name and Description: Computation and API Mappings. +
  2. +
  3. + Otherwise use the associated `label` element or elements accessible name(s) - if more than one `label` is associated; concatenate by + DOM order, delimited by spaces. +
  4. +
  5. If the accessible name is still empty, then: use the control's `title` attribute.
  6. +
  7. Otherwise use the control's placeholder value.
  8. +
  9. If none of the above yield a usable text string there is no accessible name.
  10. +
+
+
+

`input type="button"`, `input type="submit"` and `input type="reset"` Accessible Name Computation

+
    +
  1. + If the control has an `aria-label` or an `aria-labelledby` attribute the + accessible name is to be calculated using the algorithm defined in + Accessible Name and Description: Computation and API Mappings. +
  2. +
  3. + Otherwise use the associated `label` element(s) accessible name(s) - if more than one `label` is associated; concatenate by DOM order, + delimited by spaces. +
  4. +
  5. Otherwise use the `value` attribute.
  6. +
  7. + For `input type=submit` and `type=reset`: if the prior steps do not yield a usable text string, and the `value` attribute is unspecified use the + implementation defined string respective to the input type. +
  8. +
  9. Otherwise, if the control still has no accessible name use `title` attribute.
  10. +
  11. If none of the above yield a usable text string there is no accessible name.
  12. +
+
+
+

`input type="image"` Accessible Name Computation

+
    +
  1. + If the control has an `aria-label` or an `aria-labelledby` attribute the + accessible name is to be calculated using the algorithm defined in + Accessible Name and Description: Computation and API Mappings. +
  2. +
  3. + Otherwise use the associated `label` element(s) accessible name(s) - if more than one `label` is associated; concatenate by DOM order, + delimited by spaces. +
  4. +
  5. Otherwise use `alt` attribute if present and its value is not the empty string.
  6. + + +
  7. Otherwise use `title` attribute if present and its value is not the empty string.
  8. +
  9. + Otherwise if the previous steps do not yield a usable text string, use the + implementation defined string respective to the input type (an `input` in the `image` state represents a + submit button). For instance, a localized string of the word "submit" or the words "Submit Query". +
  10. +
  11. If none of the above yield a usable text string there is no accessible name.
  12. +
+
+
+

`button` Element Accessible Name Computation

+
    +
  1. + If the `button` element has an `aria-label` or an `aria-labelledby` attribute the + accessible name is to be calculated using the algorithm defined in + Accessible Name and Description: Computation and API Mappings. +
  2. +
  3. + Otherwise use the associated `label` element(s) accessible name(s) - if more than one `label` is associated; concatenate by DOM order, + delimited by spaces. +
  4. +
  5. Otherwise use the `button` element subtree.
  6. +
  7. Otherwise use `title` attribute.
  8. +
  9. If none of the above yield a usable text string there is no accessible name.
  10. +
+
+
+

`fieldset` Element Accessible Name Computation

+
    +
  1. + If the `fieldset` element has an `aria-label` or an `aria-labelledby` attribute the + accessible name is to be calculated using the algorithm defined in + Accessible Name and Description: Computation and API Mappings. +
  2. +
  3. + If the accessible name is still empty, then: if the `fieldset` element has a + child that is a legend element, then use the subtree of the first such element. +
  4. +
  5. If the accessible name is still empty, then:, if the `fieldset` element has a `title` attribute, then use that attribute.
  6. +
  7. Otherwise, there is no accessible name.
  8. +
+
+
+

`output` Element Accessible Name Computation

+
    +
  1. + If the `output` element has an `aria-label` or an `aria-labelledby` attribute the + accessible name is to be calculated using the algorithm defined in + Accessible Name and Description: Computation and API Mappings. +
  2. +
  3. + Otherwise use the associated `label` element or elements accessible name(s) - if more than one `label` is associated; concatenate by + DOM order, delimited by spaces. +
  4. +
  5. Otherwise use `title` attribute.
  6. +
  7. If none of the above yield a usable text string there is no accessible name.
  8. +
+
+
+

Other Form Elements Accessible Name Computation

+
    +
  1. + If the control has an `aria-label` or an `aria-labelledby` attribute the + accessible name is to be calculated using the algorithm defined in + Accessible Name and Description: Computation and API Mappings. +
  2. +
  3. Otherwise use `label` element.
  4. +
  5. Otherwise use `title` attribute.
  6. +
  7. If none of the above yield a usable text string there is no accessible name.
  8. +
+
+
+

`summary` Element Accessible Name Computation

+
    +
  1. + If the first `summary` element, which is a direct child of the `details` element, has an `aria-label` or an + `aria-labelledby` attribute the accessible name is to be calculated using the + algorithm defined in Accessible Name and Description: Computation and API Mappings. +
  2. +
  3. Otherwise use `summary` element subtree.
  4. +
  5. Otherwise use `title` attribute.
  6. +
  7. If there is no `summary` element as a direct child of the `details` element, the user agent should provide one with a subtree containing a localized string of the word "details".
  8. +
  9. + If there is a `summary` element as a direct child of the `details` element, but none of the above yield a usable text string, there is no + accessible name. +
  10. +
+
+
+

`figure` Element Accessible Name Computation

+
    +
  1. + If the `figure` element has an `aria-label` or an `aria-labelledby` attribute the + accessible name is to be calculated using the algorithm defined in + Accessible Name and Description: Computation and API Mappings. +
  2. +
  3. + If the accessible name is still empty, then: if the `figure` element has a + child that is a `figcaption` element, then use the subtree of the first such element. +
  4. +
  5. If the accessible name is still empty, then: if the `figure` element has a `title` attribute, then use that attribute.
  6. +
  7. Otherwise, there is no accessible name.
  8. +
+
+
+

`img` Element Accessible Name Computation

+
    +
  1. + If the `img` element has an `aria-label` or an `aria-labelledby` attribute the + accessible name is to be calculated using the algorithm defined in + Accessible Name and Description: Computation and API Mappings. +
  2. +
  3. + Otherwise use `alt` attribute, even if its value is the empty string. +
    + An `img` with an `alt` attribute whose value is the empty string is mapped to the + `presentation` role. It has no accessible name. +
    +
  4. +
  5. Otherwise, if there is no `alt` attribute use the `title` attribute.
  6. +
  7. Otherwise there is no accessible name.
  8. +
+
+
+

`table` Element Accessible Name Computation

+
    +
  1. + If the `table` element has an `aria-label` or an `aria-labelledby` attribute the + accessible name is to be calculated using the algorithm defined in + Accessible Name and Description: Computation and API Mappings. +
  2. +
  3. + If the accessible name is still empty, then: if the `table` element has a + child that is a caption element, then use the subtree of the first such element. +
  4. +
  5. If the accessible name is still empty, then: if the `table` element has a `title` attribute, then use that attribute.
  6. +
  7. Otherwise, there is no accessible name.
  8. +
+
+
+

`tr`, `td`, `th` Elements Accessible Name Computation

+
    +
  1. + If the element has an `aria-label` or an `aria-labelledby` attribute the + accessible name is to be calculated using the algorithm defined in + Accessible Name and Description: Computation and API Mappings. +
  2. +
  3. Otherwise use the `title` attribute.
  4. +
  5. If none of the above yield a usable text string there is no accessible name.
  6. +
+
+
+

`a` Element Accessible Name Computation

+
    +
  1. + If the `a` element has an `aria-label` or an `aria-labelledby` attribute the + accessible name is to be calculated using the algorithm defined in + Accessible Name and Description: Computation and API Mappings. +
  2. +
  3. Otherwise use `a` element subtree.
  4. +
  5. Otherwise use the `title` attribute.
  6. +
  7. If none of the above yield a usable text string there is no accessible name.
  8. +
+
+
+

`area` Element Accessible Name Computation

+
    +
  1. + If the `area` element has an `aria-label` or an `aria-labelledby` attribute the + accessible name is to be calculated using the algorithm defined in + Accessible Name and Description: Computation and API Mappings. +
  2. +
  3. Otherwise use `area` element's `alt` attribute.
  4. +
  5. Otherwise use the `title` attribute.
  6. +
  7. If none of the above yield a usable text string there is no accessible name.
  8. +
+
+
+

`iframe` Element Accessible Name Computation

+
    +
  1. + If the element has an `aria-label` or an `aria-labelledby` attribute the + accessible name is to be calculated using the algorithm defined in + Accessible Name and Description: Computation and API Mappings. +
  2. +
  3. Otherwise use the `title` attribute.
  4. +
  5. If none of the above yield a usable text string there is no accessible name.
  6. +
+

+ The document referenced by the `src` of the `iframe` element gets its name from that document's `title` element, like any other document. If there is no `title` provided, there is no + accessible name. +

+
+
+

Section and Grouping Element Accessible Name Computation

+
    +
  1. + If the element has an `aria-label` or an `aria-labelledby` attribute the + accessible name is to be calculated using the algorithm defined in + Accessible Name and Description: Computation and API Mappings. +
  2. +
  3. Otherwise use the `title` attribute.
  4. +
  5. If none of the above yield a usable text string there is no accessible name.
  6. +
+
+
+

Text-level Element Accessible Name Computation

+

+ `abbr`, `b`, `bdi`, `bdo`, `br`, `cite`, `code`, `dfn`, `em`, `i`, `kbd`, `mark`, `q`, + `rp`, `rt`, `ruby`, `s`, `samp`, `small`, `strong`, + `sub` and `sup`, `time`, `u`, `var`, `wbr` +

+
    +
  1. + If the element has an `aria-label` or an `aria-labelledby` attribute the + accessible name is to be calculated using the algorithm defined in + Accessible Name and Description: Computation and API Mappings. +
  2. +
  3. Otherwise use the `title` attribute.
  4. +
  5. If none of the above yield a usable text string there is no accessible name.
  6. +
+
+
+
+

Accessible Description Computation

+

+ An accessible description MAY be provided to any HTML element that is a valid child of the `body` element. The following list + represents the order of precedence for user agents to compute the accessible description of an element. As + defined by Accessible Name and Description Computation: Description Computation , user agents MUST + use the first applicable description source, even if its use results in an empty description. +

+
    +
  1. + If the element has an `aria-describedby` or `aria-description` attribute refer + to the computation conditions defined in Accessible Name and Description: Computation and API Mappings. +
  2. +
  3. + Otherwise, if the accessible description is still empty, and the element is: +
      +
    • + a `table` element which has a child `caption` element, use the + text equivalent computation of the subtree of the first `caption` element if it was not used as the + accessible name. +
    • +
    • + a `summary` element, use the text equivalent computation of its subtree if it was not used as the + accessible name. +
    • +
    • + an `input` element whose `type` attribute is the `button`, `submit` or `reset` state, and it has a `value` attribute, then use the flat string of the attribute if it was not used as + the accessible name. +
    • +
    +
  4. +
  5. Otherwise, use the flat string of the `title` attribute if it was not used as the accessible name for the element.
  6. +
  7. If none of the above are applicable, there is no accessible description.
  8. +
+
+
+ + +
+

Privacy considerations

+

+ In accordance with Web Platform Design Principles, this specification provides no programmatic + interface to determine if information is being used by Assistive Technologies. However, this specification does allow an author to present different information to users of Assistive + Technologies from the information available to users who do not use Assistive Technologies. This is possible using many features of the ARIA and CORE-AAM specifications, just as this is + possible using many other parts of the web technology stack. This content disparity could be abused to perform + active fingerprinting of users of Assistive Technologies. +

+
+
+

Security considerations

+

This specification introduces no new security considerations.

+
+
+

Appendices

+
+

Change Log

+

Review the commit history of this document on GitHub.

+
+

Substantive changes since moving to the Accessible Rich Internet Applications Working Group (03-Nov-2019)

+
    +
  • 09-Oct-2023: Acknowledge use of `hr` element within `select` element. See GitHub PR 504.
  • +
  • 03-Oct-2023: Update image mappings to reference the primary synonym roles (`image` and `none`). See GitHub PR 498.
  • +
  • 03-Oct-2023: Clarify when to expose required field as invalid. See GitHub PR 429.
  • +
  • 06-Jun-2023: Add computed roles for all HTML elements. See GitHub PR 465.
  • +
  • 28-Mar-2023: Add `inert` attribute mapping. See GitHub PR 410.
  • +
  • 24-Mar-2023: Add `search` element and its mappings. See GitHub PR 355.
  • +
  • 08-Mar-2023: Update `hgroup` element to be mapped to `role=group`. See GitHub PR 398.
  • +
  • 08-Mar-2023: Clarify naming algorithm for `output` element. See GitHub PR 402.
  • +
  • 12-Dec-2022: Revise mapping for `s` element to be `role=deletion`. See GitHub PR 442.
  • +
  • 28-Nov-2022: Simplify accessible description computation section. See GitHub PR 444.
  • +
  • 19-Jul-2022: Update `address` element to be mapped to `role=group`. See GitHub PR 420.
  • +
  • 03-Apr-2022: Update `aside` mappings based on its nesting context. See GitHub PR 350.
  • +
  • + 06-Mar-2022: Update the following elements to map to the `generic` role: `a no href`, `footer` not scoped to `body`, `header` not scoped to `body`, `samp`, `span`. See + GitHub PR 364. +
  • +
  • 06-Feb-2022: Update `mark` to point to Core AAM mapping for the role. See GitHub Issue 316.
  • +
  • + 02-Nov-2021: Updating `blockquote`, `caption`, `code`, `del`, `em`, `ins`, `meter`, `paragraph`, `strong`, `sub`, `sup` and `time` to ARIA 1.2 mappings in Core AAM. Fix `body` mapping to + `generic`, and `html` mapping to `document`. Fix `hgroup` mapping to `generic`. Update `details` to map to `group` with additional information specific to ATK, UIA. See + GitHub issue #348 +
  • +
  • 12-May-2021: Add FACES references to attributes table - `readonly`, `name`, `form`, `disabled`. See Issue 257.
  • +
  • 12-Dec-2019: Adds `hgroup`, `slot`, autonomous custom element and form associated custom element. See GitHub issue #189.
  • +
  • + 26-Nov-2019: Updates mappings for `disabled`, `scope`, `spellcheck`, `tabindex` to point to WAI-ARIA. Adds AX `pattern`, `reversed`, `rows`, `size`, `span`, `src`, `start`, `step`, + `type` attribute mappings. Adds `min-length`, `ping`, `playsinline`, `referrerpolicy`, `sizes`, `srcset`, `data[value]` attribute mappings. See + GitHub pull request #245. +
  • +
+

Substantive changes since moving to the Web Application Working Group (formerly Web Platform WG) (01-Oct-2016)

+
    +
  • + 30-Sept-2019: Remove mappings for `rb` and `rtc` elements as they are marked as obsolete in HTML. See GitHub issue #115 and + pull request #253. +
  • +
  • + 23-Sept-2019: Update attribute mappings for `high`, `low`, `max`, `min`, and `meter` and `progress`'s `value` attribute. See + GitHub pull request #244. +
  • +
  • 18-Sept-2019: Update `mark` element's UIA `LocalizedControlType` and AX `AXRoleDescription`. See GitHub issue #236.
  • +
  • + 18-Sept-2019: Update ATK mappings for `summary` and `details` elements. See GitHub issue #142 and + GitHub issue #147. +
  • +
  • 18-Sept-2019: Update MSAA mappings for `sub` and `sup`. See GitHub pull request #252.
  • +
  • + 11-Sept-2019: Update mapping for [^menu^] to match HTML Living Standard. Remove element and attribute mappings that are not applicable to `menu` and `menuitem`. Update mapping of `menu` + to `role="list"`. See GitHub issue #188. +
  • +
  • 10-July-2019: Further updated mappings for `ins` and `del` elements. See GitHub pull request #219.
  • +
  • 13-June-2019: Update mappings for `ins` and `del` elements. See GitHub issue #141.
  • +
  • 10-June-2019: Update ATK mappings for `header` and `footer` when not scoped to the `body`. See GitHub issue #129.
  • +
  • + 21-May-2019: Update AXAPI mappings for `map` element. Add accessible name and description computation for `area`. See + GitHub issue #176. +
  • +
  • 11-Apr-2019: Update UIA mappings for `sub` and `sup` elements. See Pull request #177.
  • +
  • 20-Mar-2019: Updated IA2 mappings for `sup` and `sub` elements. See GitHub issue #174.
  • +
  • 26-Feb-2019: Updated mappings for the `address` element. See GitHub issue #170.
  • +
  • + 19-Feb-2019: Added `placeholder` attribute to accessible name computation for various `input` elements. See GitHub issue #167. +
  • +
  • + 07-Feb-2018: Added entries for the `rb` and `rtc` elements, and updated AXAPI mappings for the `rb`, `rt` and `ruby` elements. See + GitHub issue #115. +
  • +
  • 07-Feb-2018: Updated mappings for the `svg` element. See GitHub issue #43.
  • +
  • 07-Feb-2018: Updated AXAPI mappings for the `del` and `ins` elements, and the `datetime` attribute.
  • +
  • + 07-Feb-2018: Aligned mappings with CORE-AAM as appropriate for `header` and `footer` when scoped to `body`, `aside`, and `output`. See + GitHub issue #119. +
  • +
  • 07-Feb-2018: Updated ATK and AX mappings for the `multiple` attribute on `input` element. See GitHub issue #96.
  • +
  • 07-Feb-2018: Updated ATK mappings for the `sub` and `sup` elements. See GitHub issue #121.
  • +
  • 07-Feb-2018: Updated mappings for the `body` element. See GitHub issue #117.
  • +
  • 01-Feb-2018: Updated IA2 mapping for the `meter` element. See GitHub issue #2.
  • +
  • 29-Jan-2018: Updated heading mapping to reflect implementations. See GitHub issue #116.
  • +
  • 23-Jan-2018: Added note regarding effect of some CSS properties. See GitHub issue #234.
  • +
  • 23-Jan-2018: Updated mappings for the `address` element. See GitHub issue #33.
  • +
  • 23-Jan-2018: Updated mappings for the `dt` element. See GitHub issue #78.
  • +
  • 23-Jan-2018: Updated AXAPI mappings for the `mark` element.
  • +
  • 08-Jan-2018: Updated mappings for the `input` element with the `type` attribute in the Color state. See GitHub issue #48.
  • +
  • + 06-Jan-2018: Updated IA2 mappings for the `pre`, `q`, and `ruby` elements, and the `multiple` attribute for the `input` element. See + GitHub issue #94. +
  • +
  • + 18-Dec-2017: Rewrote first paragraph in Introduction to better reflect the relationship between the HTML-AAM and CORE-AAM specifications. See + GitHub issue #66. +
  • +
  • 18-Dec-2017: Updated `readonly` attribute to use `aria-readonly="true"` WAI-ARIA mappings. See GitHub issue #93.
  • +
  • 08-Dec-2017: Changed AXAPI mapping for the `canvas` element from `AXImage` to `AXGroup`.
  • +
  • 01-Dec-2017: Updated mappings for the `dfn` element. See GitHub issue #6.
  • +
  • 30-Nov-2017: Updated mappings for the `meter` element. See GitHub issue #2.
  • +
  • 24-Nov-2017: Updated mappings for the `audio` and `video` elements. See GitHub issue #80.
  • +
  • 23-Nov-2017: Updated `figure` element mappings to reflect the WAI-ARIA `figure` role mappings.
  • +
  • + 23-Nov-2017: Updated mappings for the `form` element based on presence of accessible name. See + GitHub issue #106. +
  • +
  • + 23-Nov-2017: Removed the accessible name computation requirement to ignore an `img` element's `title` attribute when the element's `alt` attribute is empty. See + GitHub issue #99. +
  • +
  • + 23-Nov-2017: Added note to not expose `aria-roledescription` unless element also a conforming `role` attribute value. See + GitHub issue #98. +
  • +
  • 09-Aug-2017: Updated mappings for the `type` attribute on the `ol` element. See GitHub issue #91.
  • +
  • + 25-July-2017: Updated UIA mappings for multiple elements and attributes. See GitHub issue #95 and + GitHub pull request #101. +
  • +
  • + 02-June-2017: Updated AXAPI mappings for `title` attribute on `abbr` element, and `abbr` attribute on `th` element. See + GitHub issue #16. +
  • +
  • 31-May-2017: Updated mappings for `hidden` attribute. See GitHub issue #38.
  • +
  • 24-May-2017: Updated mappings for `selected` attribute. See GitHub issue #92.
  • +
  • 01-May-2017: Updated AXAPI mapping for `time` element. See GitHub issue #88.
  • +
  • 27-Apr-2017: Updated UIA mappings for `lang` and `dir` attributes. See GitHub issue #19.
  • +
  • + 19-Apr-2017: Updated mapping for `colspan` and `rowspan` attributes. See GitHub issue #56 and + issue #57. +
  • +
  • 03-Apr-2017: Updated mapping for `section` element. See GitHub issue #79.
  • +
  • 23-Dec-2016: No mapping for `datalist` element if not linked with `input` element. See GitHub issue #26.
  • +
  • 23-Dec-2016: Updated IA2 mapping for `list` attribute. See GitHub issue #21.
  • +
  • 22-Dec-2016: Sync mappings for `footer` and `header` elements. See GitHub issue #59.
  • +
  • 22-Dec-2016: Updated IA2 mapping for `input@type='date'` attribute. See GitHub issue #61.
  • +
  • 22-Dec-2016: Updated IA2 mapping for `input@type='file'` element. See GitHub issue #62.
  • +
  • 22-Dec-2016: Updated IA2 mapping for `summary` element. See GitHub issue #64.
  • +
  • + 14-Dec-2016: Updated wording distinguishing when `header` and `footer` elements are or are not ARIA landmarks. See + GitHub issue #65. +
  • +
  • + 07-Dec-2016: Modified `aria-multiselectable` mapping for `datalist` to reflect listbox selection model. See GitHub issue #71. +
  • +
  • 07-Dec-2016: Mappings for the `multiple` attribute on `input` and `select` elements. See GitHub issue #72.
  • +
  • 27-Nov-2016: Added implementation rules for the `checked`, `contenteditable`, `disabled`, and `indeterminate` attributes.
  • +
  • 21-Nov-2016: Removed `placeholder` attribute from accessible description computation for various `input` elements.
  • +
+
+
+
+

Acknowledgments

+

The following people contributed to the development of this document.

+
+ +
    + +
    +
    +
    +
    + + diff --git a/mathml-aam/index.html b/mathml-aam/index.html new file mode 100644 index 000000000..fe446170d --- /dev/null +++ b/mathml-aam/index.html @@ -0,0 +1,1413 @@ + + + + + MathML Accessibility API Mappings 1.0 + + + + + + + + + +
    +

    + The MathML Accessibility API Mappings (MathML-AAM) specification defines how [=user agents=] map Mathematical Markup Language (MathML) [[MathML3]] to platform accessibility APIs. It + extends the Core Accessibility API Mappings (CORE-AAM) specification [[CORE-AAM-1.2]]. +

    +

    + This specification is intended for user agent developers responsible for MathML accessibility in their product. The goal of this specification is to maximize the accessibility of MathML + content by ensuring each assistive technology receives MathML content with the roles, states, and [=ARIA/properties=] it expects. +

    +

    + At the present time, this specification contains mappings for the subset of MathML contained in the MathML Core specification [[MathML-Core]]. The reason why is that this subset contains the + [=elements=] and [=attributes=] from MathML which are exposed to assistive technologies via platform accessibility APIs. +

    +

    + The MathML-AAM is part of the WAI-ARIA suite described in the WAI-ARIA Overview. +

    +
    +
    +

    This document is a work in progress.

    +

    + To provide feedback, please create or comment on an issue in the W3C MathML Accessibility + API Mappings GitHub repository. If this is not feasible, send email to public-aria@w3.org. +

    +
    + +
    +

    Introduction

    +

    +
    + +
    +

    The classification of a section as normative or non-normative applies to the entire section and all sub-sections of that section.

    +

    Normative sections provide requirements that authors and user agents, and assistive technologies MUST follow for an implementation to conform to this specification.

    +

    + Non-normative sections provide information useful to understanding the specification. Such sections may contain examples of recommended practice, but it is not required to follow such + recommendations in order to conform to this specification. +

    + +
    +

    Deprecated

    +

    There are currently no deprecated requirements.

    +
    +
    + +
    +

    Mapping MathML to Accessibility APIs

    + +
    +

    General rules for exposing WAI-ARIA semantics

    +

    + User agents MUST conform to General rules for exposing WAI-ARIA semantics + in [[!CORE-AAM-1.2]]. +

    +
    + +
    +

    Conflicts between native semantics and WAI-ARIA

    +

    + User agents MUST conform to Conflicts between native markup semantics and WAI-ARIA + in [[!CORE-AAM-1.2]]. +

    +
    + +
    +

    Exposing features that do not directly map to accessibility API

    +

    User agents MUST conform to Exposing attributes that do not directly map to accessibility API properties in [[!CORE-AAM-1.2]].

    +
    + +
    +

    MathML Element Mappings

    +

    `annotation`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `annotation` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_STATIC
    + Object Attribute: tag:annotation +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: TBD +
    +

    `annotation-xml`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `annotation-xml` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_SECTION
    + Object Attribute: tag:annotation-xml +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: TBD +
    +

    `maction`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `maction` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_SECTION
    + Object Attribute: tag:maction +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: TBD +
    +

    `math`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `math` +
    [[wai-aria-1.1]]`math` role
    MSAA + IAccessible2 +
    Use WAI-ARIA mapping
    +
    UIA +
    Use WAI-ARIA mapping
    +
    ATK +
    Use WAI-ARIA mapping
    +
    AX API +
    Use WAI-ARIA mapping
    +
    +

    `merror`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `merror` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_SECTION
    + Object Attribute: tag:merror +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathRow +
    +

    `mfrac`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `mfrac` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_MATH_FRACTION
    + Object Attribute: tag:mfrac +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathFraction
    + AXAttributes: AXMathFractionNumerator pointing to the first in-flow child
    + AXMathFractionDenominator pointing to the second in-flow child +
    +
    +

    `mi`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `mi` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_STATIC
    + Object Attribute: tag:mi +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathIdentifier +
    +

    `mmultiscripts`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `mmultiscripts` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_SECTION
    + Object Attribute: tag:mmultiscripts +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathMultiscript
    + AXAttributes: +
      +
    • + AXMathPostscripts is an array of dictionaries of AXMathSubscript and AXMathSupscript pointing to postsubscript and postsupscript elements , + i.e. N and N + 1 in-flow children starting from the second in-flow child and preceeding + `mprescripts` + element if any; +
    • +
    • + AXMathPrescripts is an array of dictionaries of AXMathSubscript and AXMathSupscript pointing to presubscript and presupscript elements, + i.e. N and N + 1 in-flow children starting after + `mprescripts` + element if any or from index 1. +
    • +
    +
    +

    `mn`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `mn` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_STATIC
    + Object Attribute: tag:ms +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathNumber +
    +

    `mo`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `mo` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_STATIC
    + Object Attribute: tag:mo +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathOperator +
    +

    `mover`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `mover` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_SECTION
    + Object Attribute: tag:mover +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathUnderOver
    + AXAttributes: AXMathBase pointing to the first in-flow child AXMathOver pointing to the second in-flow child +
    +

    `mpadded`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `mpadded` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_SECTION
    + Object Attribute: tag:mpadded +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: TBD +
    +

    `mphantom`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `mphantom` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_SECTION
    + Object Attribute: tag:mphantom +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathRow +
    +

    `mprescripts`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `mprescripts` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_SECTION
    + Object Attribute: tag:mprescripts +
    AX APINot mapped
    +

    `mroot`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `mroot` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_MATH_ROOT
    + Object Attribute: tag:mroot +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathRoot
    + AXAttributes: AXMathRootRadicand is an array containing the first in-flow child as its unique element,
    + AXMathRootIndex pointing to the second in-flow child +
    +
    +

    `mrow`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `mrow` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_SECTION
    + Object Attribute: tag:mrow +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathRow +
    +

    `ms`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `ms` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_STATIC
    + Object Attribute: tag:ms +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: nil +
    +

    `mspace`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `mspace` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATKNot mapped
    AX APINot mapped
    +

    `msqrt`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `msqrt` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_MATH_ROOT
    + Object Attribute: tag:mroot +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathSquareRoot
    + AXAttributes: AXMathRootRadicand is an array containing the in-flow children +
    +

    `mstyle`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `mstyle` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_SECTION
    + Object Attribute: tag:mstyle +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathRow +
    +

    `msub`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `msub` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_SECTION
    + Object Attribute: tag:msub +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathSubscriptSuperscript
    + AXAttributes: AXMathBase pointing to the first in-flow child
    + AXMathSubscript pointing to the second in-flow child +
    +
    +

    `msubsup`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `msubsup` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_SECTION
    + Object Attribute: tag:msubsup +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathSubscriptSuperscript
    + AXAttributes: AXMathBase pointing to the first in-flow child AXMathSubscript pointing to the second in-flow child
    + AXMathSuperscript pointing to the third in-flow child +
    +
    +

    `msup`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `msup` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_SECTION
    + Object Attribute: tag:msup +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathSubscriptSuperscript
    + AXAttributes: AXMathBase pointing to the first in-flow child
    + AXMathSuperscript pointing to the second in-flow child +
    +
    +

    `mtable`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `mtable` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_TABLE
    + Object Attribute: tag:mtable
    + Interface(s): AtkTable +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathTable +
    +

    `mtd`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `mtd` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_TABLE_CELL
    + Object Attribute: tag:mtd
    + Interface(s): AtkTableCell +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathTableCell +
    +

    `mtext`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `mtext` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_STATIC
    + Object Attribute: tag:mtext +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathText +
    +

    `mtr`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `mtr` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_TABLE_ROW
    + Object Attribute: tag:mtr +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathTableRow +
    +

    `munder`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `munder` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_SECTION
    + Object Attribute: tag:munder +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathUnderOver
    + AXAttributes: AXMathBase pointing to the first in-flow child
    + AXMathUnder pointing to the second in-flow child +
    +
    +

    `munderover`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `munderover` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_SECTION
    + Object Attribute: tag:munderover +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: AXMathUnderOver
    + AXAttributes: AXMathBase pointing to the first in-flow child
    + AXMathUnder pointing to the second in-flow child
    + AXMathOver pointing to the third in-flow child +
    +
    +

    `none`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `none` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_SECTION
    + Object Attribute: tag:none +
    AX API + AXRole: TBD
    + AXSubrole: TBD +
    +

    `semantics`

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MathML Specification + `semantics` +
    [[wai-aria-1.1]]No corresponding role
    MSAA + IAccessible2TBD
    UIATBD
    ATK + Role: ATK_ROLE_SECTION
    + Object Attribute: tag:semantics +
    AX API + AXRole: NSAccessibilityGroupRole
    + AXSubrole: TBD +
    +
    +
    + +
    +

    Change Log

    +
    +

    Substantive changes since the last public working draft

    +
      + +
    +
    +
    +

    Substantive changes since the creation of this specification

    +
      +
      +
      +
      +

      Acknowledgments

      +

      The following people contributed to the development of this document.

      +
      +
      +
      + + diff --git a/svg-aam/.gitattributes b/svg-aam/.gitattributes new file mode 100644 index 000000000..e5237fb0f --- /dev/null +++ b/svg-aam/.gitattributes @@ -0,0 +1,12 @@ +# Ensure all text files do not accidentally become a CRLF file. +# Agreed upon during 5 August 2015 PF Editors concall. +# To override or prevent this behavior see the following sections. +* text eol=lf + +# Files that will always have CRLF line endings. Example: +# my-special-spec.html eol=crlf + +# Ensure non-text files don't get accidentally swept up by above. +*.png binary +*.jpg binary +*.zargo binary diff --git a/svg-aam/.gitignore b/svg-aam/.gitignore new file mode 100644 index 000000000..f91ff2b91 --- /dev/null +++ b/svg-aam/.gitignore @@ -0,0 +1,216 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml +*.publishproj + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +*.py[cod] + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg diff --git a/svg-aam/README.md b/svg-aam/README.md new file mode 100644 index 000000000..c013afa6c --- /dev/null +++ b/svg-aam/README.md @@ -0,0 +1,10 @@ + +# Specification 'svg-aam' + +This is the repository for SVG Accessibility API Mappings (svg-aam). It is the basis of the [Editor's Draft version of the specification](https://w3c.github.io/svg-aam/). + +You can also compare against [the most recent published version](https://www.w3.org/TR/svg-aam-1.0/). + +This specification is part of the [ARIA suite](https://www.w3.org/WAI/ARIA/deliverables), and uses the same code structure and build tools as other ARIA suites. General information about editing specifications is in the [main ARIA repository readme](https://github.com/w3c/aria/). + +Publication of the specification is now the responsibility of the SVG working group. The best way to comment on the specification is by filing an issue in this repository. \ No newline at end of file diff --git a/svg-aam/index.html b/svg-aam/index.html new file mode 100644 index 000000000..aee78ef14 --- /dev/null +++ b/svg-aam/index.html @@ -0,0 +1,3139 @@ + + + + SVG Accessibility API Mappings + + + + + + + + + + +
      +

      + SVG Accessibility API Mappings (SVG-AAM) defines how + user agents map Scalable Vector Graphics (SVG) [[!SVG2]] markup to platform + accessibility application programming interfaces (APIs). It is intended for SVG user + agent developers responsible for SVG accessibility in their user agent. +

      +

      + This specification allows SVG authors to create accessible rich internet applications, including charts, graphs, and other drawings. It does this by extending the + Core Accessibility API Mappings 1.1 (CORE-AAM) [[!CORE-AAM]] and the + Accessible Name and Description: Computation and API Mappings 1.1 (ACCNAME-AAM) [[!ACCNAME-AAM]] specifications for user agents. It + leverages those core mappings and provides SVG-specific guidance to define how the SVG user agent must respond to keyboard focus and role, + state, and property attributes provided in Web content via + WAI-ARIA + [[!WAI-ARIA]]. The SVG-AAM also adapts the ACCNAME-AAM to make use of standard SVG features used to compute accessible names and description information exposed by platform accessibility + APIs. +

      +

      + The SVG-AAM is part of the + WAI-ARIA suite described in the + WAI-ARIA Overview. +

      +
      +
      +

      This document is a work in progress.

      +

      + To provide feedback, please create or comment on an issue in the W3C SVG Accessibility API + Mappings GitHub repository. If this is not feasible, send email to www-svg@w3.org (email archive). In-progress updates to the document may be viewed in the publicly visible editors' draft. +

      +

      Particularly problematic open issues are highlighted in this document, with links to the GitHub discussion. Comments on these issues would be particularly appreciated.

      +

      Relative to the last published working draft (8 September 2016), the following major changes have been made:

      + +

      In addition, there have been numerous clarifying edits.

      +

      + This document was initially developed jointly by the Accessible Rich Internet Applications Working Group and the + SVG Working Group, through the + SVG Accessibility Task Force. It continues to be produced in coordination with other + specifications developed by the ARIA Working Group. +

      +
      +
      +

      Introduction

      +

      + This specification defines how SVG host language elements and content — with or without WAI-ARIA roles, states, and properties + applied — map to accessibility APIs. Sections give guidance on calculating text alternatives, mapping actions to + events, event processing, special document handling procedures, and error handling. +

      +

      + This introduction provides some background on why this specification exists, and how it relates to other WAI-ARIA specifications. It includes a general overview of accessibility + APIs and the hierarchy of accessible objects known as the + accessibility tree. +

      +
      +

      History and Purpose

      +

      + In traditional Graphical User Interface (GUI) applications, components of the User Interface (UI) are displayed when needed and hidden when not needed based on user interactions. + Accessibility APIs are used to communicate + semantics + about the user interface to + assistive technologies + used by people with disabilities. +

      +

      + These APIs constitute a contract between applications and assistive technologies, such as screen readers, magnifiers, alternate input + devices, and speech command and control, to enable them to access the appropriate semantics needed to produce a usable alternative to interactive applications or complex documents. For + example, screen-reading software for blind users can determine whether a particular UI component is a menu, button, text field, list box, etc. It can also + present the information in tables or lists in a way that provides context for each piece of text. +

      +

      + For web documents and applications, the essential semantic information is encapsulated within the Document Object Model (DOM). Assistive + technologies obtain this information from the user agent (web browser), which maps elements and attributes to the platform Accessibility + API. +

      +

      + In Scalable Vector Graphics (SVG) documents, most SVG elements + do not provide semantic information of value to assistive technologies. Instead, they represent low-level vector graphics drawing directives. That element only has meaning to assistive + technologies if the author provides alternative text, descriptions, or WAI-ARIA semantics. +

      +

      + Both version 1 [[SVG1]] and version 1.1 [[SVG11]] of the SVG specifications included elements for defining accessible names and + descriptions (<title> and <desc>). However, prior to this specification, there was no normative guidance as to + how user agents should expose this information to assistive technologies, or how to integrate it with host languages and validators that support WAI-ARIA. There was similarly no guidance on + how user agents should make interactive SVG keyboard accessible. +

      +

      + SVG 2 now incorporates keyboard navigation based on the established model from HTML 5. The user agent provides sequential focus navigation to + SVG elements that are interactive by default (links and audio/video elements with controls), or that the author has indicated may receive focus + (through the use of tabindex attribute). Focus may also be set or removed programmatically by scripts, so that authors may implement more complex keyboard focus patterns. +

      +

      + SVG closely aligns with the core DOM Standard [[DOM]], supporting JavaScript manipulation of the graphic in interactive environments. Through the use of JavaScript, + CSS, and related APIs, authors can make SVG look and behave as an interactive application, to produce rich interactive charts and drawings. +

      +

      + To allow the author to express and dynamically update their intended semantics in both static and interactive graphics, SVG 2 supports the use of + WAI-ARIA roles, states, and properties. Authors may include + WAI-ARIA attributes in their markup and user agents will translate it to the platform accessibility + APIs. +

      +

      + WAI-ARIA enables rich SVG-drawn Internet applications to have the same accessibility features as + GUI applications installed on their operating system. In complex static graphics, WAI-ARIA provides the missing document structure that is + provided in HTML by semantic elements. +

      +
      +
      +

      Relationship to Other Specifications

      +

      + For an introduction to WAI-ARIA, see the + WAI-ARIA Overview. +

      +

      + The SVG Accessibility API Mappings specification (this document) defines how WAI-ARIA features interact with the native semantics + of the SVG language. It is part of a set of resources that define and support the WAI-ARIA specification, including the following + documents: +

      + +

      + This guide relies heavily on the accessibility API mappings defined in the + Core Accessibility API Mappings + and + Accessible Name and Description + specifications ([[CORE-AAM]] and [[ACCNAME-AAM]]) but defines changes in mappings due to features in the SVG host language [[SVG2]]. Key areas of difference stem from the intrinsic host + language semantics of SVG: +

      +
        +
      • The procedure for mapping the DOM tree to the accessibility tree is designed to simplify that tree to only include elements with semantic importance.
      • +
      • SVG elements are assigned default roles and properties, which in many cases are conditional on whether they meet the criteria for inclusion in the accessibility tree.
      • +
      • Text computation of names and descriptions use the SVG metadata elements.
      • +
      • Implicit ARIA states (such as whether an element is hidden) must be updated in response to SVG animations.
      • +
      +
      +
      +

      Accessibility APIs

      +

      + To provide access to GUI applications, software applications expose the necessary information needed by + assistive technologies to interoperate with it through + accessibility APIs. The accessibility information exposed through the + accessibility APIs must be maintained throughout the applications lifecycle. +

      +

      + In Web pages the Document Object Model (DOM) is used to represent the structure and state of the elements in + the document being rendered by a user agent. The elements of the document are organized into a hierarchy of nodes known as the + DOM tree. User agents map DOM to accessibility + APIs, in the same way desktop applications map UI components. The information provided to the accessibility API is used to support + assistive technologies, with the expectation that the information passed from the DOM matches the semantic intent of the author. The author may communicate this semantic intent by using + native features of the document language or by using WAI-ARIA, if native features are not available. +

      +

      + Authors use SVG to create a broad range of applications and drawings. The information needed to support accessibility APIs in + SVG comes from a combination of semantics from the elements themselves but also the additional semantics provided by + WAI-ARIA and the modular extensions to WAI-ARIA supported by this + specification. +

      +

      + A screen reader or other assistive technology uses the semantic information exposed via the accessibility API + to provide an alternative rendering of an application that is meaningful to a user. +

      +

      + Accessibility APIs + supported by this document (and the other specifications it extends) are: +

      + +

      + If user agent developers need to expose information using other accessibility APIs, it is recommended that they work closely with the + developer of the platform where the API runs, and assistive technology developers on that platform. +

      +
      +
      +

      The Accessibility Tree and the DOM Tree

      +

      + The accessibility tree and the DOM tree are parallel structures. Roughly speaking, the + accessibility tree is a subset of the flattened DOM tree, which is then augmented to include the user interface + objects of the user agent + as well as the objects of the document. +

      +

      + Accessible objects are created in the accessibility tree for every DOM + element + that should be exposed to an + assistive technology. An element could be exposed because it may fire an accessibility event or + because it has a property, relationship or feature which needs to be exposed. +

      +

      + Generally, if a DOM element can be omitted from the accessibility tree without affecting meaning, it will be, for reasons of performance and simplicity. For example, a + <span> with just a style change and no semantics + may not get its own accessible object, but the style change will be exposed by other means. +

      +
      +
      +
      +

      Normative User Agent Implementation Requirements for SVG

      +

      + This specification marks certain sections as non-normative, also called informative. The classification applies to the entire section. All other + sections provide normative requirements. A statement "This section is non-normative" applies to all its sub-sections, unless otherwise indicated. In + addition, all text boxes labelled "Note" are informative. +

      +

      + Normative sections provide requirements that + user agents must follow for an implementation to conform to this specification. The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, + RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described in + Keywords for use in RFCs to indicate requirement levels [[rfc2119]]. RFC-2119 keywords are formatted in uppercase and + contained in an element with class="rfc2119". When the keywords shown above are used, but do not share this format, they do not convey formal information in the RFC 2119 sense, + and are merely explanatory, i.e., informative. As much as possible, such usages are avoided in this specification. +

      +

      + Informative sections and notes provide information useful to understanding the specification. Such sections may contain examples of recommended practice, but it is not required to follow such + recommendations in order to conform to this specification. +

      +
      +
      +

      Important Terms

      +
      Placeholder for glossary
      +
      +
      +

      Supporting Keyboard Navigation

      +

      + Enabling keyboard navigation in web applications is a necessary step toward making accessible web applications possible. Not only is the keyboard the primary input device for many users, but + other accessibile input devices use keyboard events to communicate with the user agent. +

      +

      + The Scalable Vector Graphics (SVG) 1 [[SVG1]] and 1.1 [[SVG11]] specifications included only very limited keyboard support (access keys for animations). Many user agents implemented tabbed + focus for links, but there was no declarative or scripted means for authors to control this behavior. Scalable Vector Graphics (SVG) 2 [[SVG2]] introduces keyboard navigation and focus control + based on the HTML tabindex model. +

      +

      + Conforming user agents MUST conform to + Supporting Keyboard Navigation + requirements in the Core Accessibility API Mappings [[!CORE-AAM]]. +

      + +

      The SVG Accessibility Task Force intends to develop more detailed guidelines for authors and user agents regarding navigation in graphical documents.

      +
      +
      +

      Mapping WAI-ARIA to Accessibility APIs

      +

      + WAI-ARIA support was formally introduced to SVG in Scalable Vector Graphics (SVG) 2 [[SVG2]], which allows ARIA attributes to be used + in the default namespace. This section defines how WAI-ARIA semantics are exposed to assistive technologies through platform Accessibility + APIs and how SVG elements are mapped to Accessibility APIs based on WAI-ARIA. +

      + +
      +

      General rules for exposing WAI-ARIA semantics

      +

      + SVG user agents MUST conform to General rules for exposing WAI-ARIA semantics in the Core Accessibility + API Mappings [[!CORE-AAM]], with the additions described in the following sub-sections. +

      + +
      +

      Excluding Elements from the Accessibility Tree

      +

      + Certain elements in the DOM are not exposed via the + accessibility API. The section Excluding Elements from the Accessibility Tree + of the Core Accessibility API Mappings [[CORE-AAM]] outlines the general rules for excluding elements. One factor is whether host language semantics specify that the element should not be + displayed. +

      +

      + The SVG language defines numerous elements that fit this criteria. Many SVG elements are never directly rendered to the screen, while others may or may not be rendered or displayed, + depending on context or CSS styling. Elements which are neither perceivable nor interactive should not be included in the accessibility tree exposed to accessibility + APIs. This section details the expected interpretation of SVG host language semantics. +

      +
      +

      The other factors for excluding elements, as described in the Core Accessibility API Mappings, can be summarized as follows:

      +
        +
      • + If the first mappable role provided by the author is none or + presentation, the element must not be exposed. +
      • +
      • + If the element or an ancestor has an aria-hidden value of true, it should not be exposed. +
      • +
      • + If an ancestor of the element has a used role which has the characteristic "Children Presentational: True" in the + WAI-ARIA specifications [[WAI-ARIA]], the child element should not be exposed. For example, the roles button and + img + exclude all child content from being directly included in the accessibility tree. +
      • +
      +

      + However, note that a number of features of an element, such as interactivity, can cause + an author-supplied or inherited role of none or presentation to be ignored as an error. + An element will not be excluded if it can currently receive focus based on user interaction. +

      +

      Consult the original document ([[CORE-AAM]]) for the normative text.

      +
      + +

      + Elements which are never directly rendered to screen, nor represented by an interactive region in a graphic, do not need a corresponding accessible object. User agents + MUST NOT include any elements, or their descendant content, as an accessible object in the + accessibility tree that are indicated as no accessible object created in the + SVG Element Mapping Tables. User agents SHOULD also exclude any other element defined by past or future SVG + specifications or modules that specifically indicate the element is never directly rendered. +

      +

      + For example, elements that represent filters, gradients, or gradient stops will never create an accessible object. Shape elements or image elements that are included in an SVG definitions + section or as part of a pattern will also not have accessible objects, because the semantics of the ancestor + defs or pattern element preclude that entire DOM subtree from being represented in the accessibility tree. +

      +

      + Elements that are excluded from the accessibility tree might still be used in the name and description computation of another element, + as defined in the Name and Description section. Non-rendered elements may also be used as the templates for rendered element instances created by a + use element, as described in the section on Use-Element Shadow Trees. +

      +

      + Although they are not directly included in the accessibility tree, animation and view elements can affect the accessible objects representing their target elements, as described under + Special Processing Requiring Additional Computation. +

      +

      + In addition, SVG 1.1 [[SVG11]] defines the conditional processing attributes + systemLanguage, requiredExtensions, and requiredFeatures. These may be used individually or in combination with the switch element to + prevent content from being rendered under certain conditions, or to select between alternate versions of content. +

      +

      + SVG user agents MUST NOT expose to accessibility APIs any elements that are not rendered because of conditional processing attributes on that element or + because of the position of that element within a switch construct. The switch element itself SHOULD be omitted as if it had a role of + none or presentation. +

      + +

      + The rendering of SVG elements is also affected by CSS styling properties, which may be specified using stylesheet rules, inline styles, presentation attributes, or animations. Regardless + of how the style property is specified, the effect depends on the final computed value determined by the CSS cascade [[CSS-CASCADE-3]]. User agents + MUST NOT expose to accessibility APIs any element that is not rendered because its computed style includes a value of none for the + display property. +

      +

      + Other style properties can prevent an element, which is otherwise part of the rendering tree, from creating any visible representation in the rendered graphic. Such elements may still be + interactive; they may receive keyboard focus or they may be associated with a region of the graphic that is responsive to pointer input events. +

      +

      + For the purpose of SVG, an element is considered hidden if it is neither visible, according to the computed value of the + visibility property, nor interactive to pointer users. according to the + pointer-events property. User agents SHOULD NOT + expose to accessibility APIs any element that is hidden in this sense, + unless the author explicitly overrides the hiding by setting the aria-hidden attribute to false. +

      +

      + In the case of container elements (such as g or svg), the element is not considered hidden if any of its descendent content is visible or can + receive user events, regardless of the computed value of visibility on the element itself. Similarly, a use element may include visible or interactive component + graphics, despite having style properties that would cause an individual shape element to be hidden. The use element MUST be considered visible or interactive if any elements + within its shadow tree are visible or interactive. (The container or the use element may, however, still be considered presentational if it does not have any other reason to + include it in the accessibility tree.) A shape element with markers is visible or interactive if any of its markers are visible or interactive. +

      +
      +

      + In HTML and in other CSS-styled documents, elements made invisible with visibility: hidden are always hidden elements for accessibility purposes, equivalent to un-rendered + elements (such as those with display: none). +

      +

      For SVG, this is not always appropriate, because of the interaction with the pointer-events property.

      +

      + In many cases, the invisible elements are of semantic importance (because they are interactive) while visible elements are presentational only. For example, large invisible elements are + often used to provide easy-to-hit targets for points in a map or datachart. Because these elements react to pointer events, they are effectively perceivable to pointer users, and should + be perceivable and interactive to users of assistive technologies as well. +

      +

      + An SVG element with a computed value of visibility: hidden + can be interactive to pointer users for the following values of the + pointer-events property: +

      +
        +
      • + painted, for any rendered element except shape or a text where both the fill and stroke properties have a computed value of + none +
      • +
      • fill
      • +
      • stroke
      • +
      • all
      • +
      • bounding-box
      • +
      +
      +

      + An element that is currently positioned off-screen, or that is obscured by other elements, is not considered hidden. User agents should expose this state through other means, as described + in the State and Property Mapping + section of the Core Accessibility API Mappings [[CORE-AAM]]. +

      + +
      +

      + Various other style properties and geometric attributes (of an element itself or an ancestor element) can make an element invisible. For simplicity, flexibility, and performance reasons, + these are not considered a hiding method that excludes elements from the accessibility tree. +

      +

      + When using properties other than display or visibility to hide inactive content, authors can use the + aria-hidden attribute to indicate that assistive technologies should ignore the element and its descendents. +

      +
      +
      +

      + Previous drafts of this specification also considered the + fill and stroke properties, when both set to a value of none, as a valid way to hide an element. This has been removed as it introduced excessive + complexity. Some SVG elements (e.g., embedded images) are not affected by stroke and fill; even those that are can be visible without it, because of markers or filter effects. + Furthermore, it could result in identical-looking graphics (for example: one that used fill: transparent instead of fill: none) having markedly different + accessibility trees. +

      +

      + Note, however, that the fill and stroke properties may still have an indirect effect on the inclusion of an element, depending on the value of the + pointer-events property. +

      +
      +
      +

      + The strict exclusion of non-rendered metadata elements, including desc, from the accessibility tree means that their content will only be available as plain text, not as + structured alternative representations that a user can navigate in browsing mode. +

      +

      + This contradicts the original intent of the SVG specifications, which allows these elements to include structured content, including HTML-namespaced content. The SVG 1 specifications had + suggested that this could be alternatively presented as CSS-formated XML text, but this is not supported by the user agent/assistive technology combinations currently in use. +

      +

      + The editors welcome feedback and suggestions (in GitHub Issue #6) on alternative ways to represent this hidden alternative content + in a way consistent with user agent and accessibility API implementations. +

      +
      +
      + +
      +

      Including Elements in the Accessibility Tree

      + +

      + Many SVG elements—although rendered to the screen—do not have an intrinsic semantic meaning. Instead, they represent components of the visual presentation of the document. To + simplify the accessible representation of the document, these purely presentational elements should normally be omitted from the accessibility tree, unless the author explicitly provides + semantic content. +

      +

      + However, any rendered SVG element may have semantic meaning. Authors indicate the significance of the element by including alternative text content or + WAI-ARIA attributes. This section defines the rules for including normally-omitted elements in the accessibility tree. +

      +

      + The following graphical and container elements in the SVG namespace + SHOULD NOT be included in the accessibility tree, except as described in this section: +

      +
        +
      • + shape elements (circle, + ellipse, line, path, polygon, polyline, rect) +
      • +
      • the use element
      • +
      • the grouping (g) element
      • +
      • the image element
      • +
      • the mesh element
      • +
      • + text formatting elements (textPath, + tspan) +
      • +
      • the foreignObject element
      • + +
      +

      + Although these elements are omitted from the accessibility tree, their child content + + is still processed, as if it was a direct child of the nearest ancestor node in the DOM tree that is included in the accessibility tree. In other words, the markup elements are treated as + if they had a role of none or presentation. +

      +

      + For use elements, the elements and text in their associated shadow tree MUST be processed as if it was child content of the use element, following the conditions + specified in processing requiring additional computation. This means that elements from the shadow tree can be included in the accessibility tree + even if the use element itself has a (default or author-supplied) role of presentation. +

      + +

      + SVG user agents MUST provide an accessible object in the accessibility tree for rendered SVG elements that meet any of the following criteria, + unless they are excluded from the accessibility tree per the rules in Excluding Elements from the Accessibility Tree: +

      +
        +
      • + It has at least one direct child + title + element or + desc' + element that is not empty after trimming whitespace. User agents MAY include elements with these child elements without checking for valid text content. +
      • +
      • + It has a non-empty (after trimming whitespace) + aria-label + attribute or + aria-roledescription + attribute. +
      • +
      • + It has an + aria-labelledby + attribute or + aria-describedby + attribute containing valid IDREF tokens. User agents MAY include elements with these attributes without checking for validity. +
      • +
      • + It has a valid integer + 'tabindex' + attribute. +
      • +
      • + The author has provided an allowed, non-abstract + WAI-ARIA role other than none or + presentation. +
      • +
      • + It meets any of the criteria listed in the section + Including Elements in the Accessibility Tree + of the Core Accessibility API Mappings specification [[!CORE-AAM]]. +
      • +
      +
      +

      + At the time of drafting this document, those criteria are as follows: + +

      + +

      The latest version of the source document [[CORE-AAM]] should be consulted for the normative text.

      +

      + The exception for hidden elements means that SVG metadata elements or other non-rendered content may be used in the accessible name and description of another element without themselves + being included in the accessiblity tree. For example, current best practice for fallback browser support is to use aria-labelledby and aria-describedby + to redundantly link to + title and desc child elements. Including these elements as separate nodes in the tree would unnecessarily complicate the document presented to screen reader + users. +

      +
      +

      + Interactive elements are covered by the requirement regarding elements that may fire an Accessibility API event. Specifically, for SVG the following elements are interactive and MUST be + included in the accessibility tree, without exception, regardless of whether they would otherwise be considered hidden or presentational: +

      +
        +
      • + A rendered element (or instance of an element in a use-element shadow tree) with a positive integer value for + the tabindex attribute, or which is focusable by default and has not been removed from the tab order + with a negative integer tabindex attribute, which may receive keyboard focus and therefore keyboard input events. +
      • +
      • + A rendered element (or instance of an element) that currently has keyboard + focus + (e.g., after being focused from a script), which may receive keyboard input events. +
      • +
      +

      + With regards to pointer events, which bubble up the DOM tree, the exact element that receives the event may not have semantic meaning (that is, it may still be presentational). However, + the ability to receive pointer events overrides any exclusion based on the visibility: hidden style property. +

      +

      + The tabindex attribute and the pointer-events property have no impact on elements which are not rendered at all, because of the + display: none property or because of host language semantics. +

      +
      +
      + +
      +

      Conflicts between native markup semantics and WAI-ARIA

      +

      + SVG user agents MUST conform to + Conflicts between native markup semantics and WAI-ARIA in the Core Accessibility API Mappings [[!CORE-AAM]] where the host language is + SVG and the native semantics are as described in the SVG Element Mapping Tables, the + State and Property Mapping section, and the Special Processing Requiring Additional Computation section. +

      +

      + Elements for which no accessible object is created and no role may be applied, as defined in the SVG Element Mapping Tables, have no implicit role + semantics. The + aria-roledescription + attribute MUST NOT be exposed on these elements. All other SVG elements have implicit role semantics when used with global WAI-ARIA attributes, including + aria-roledescription. +

      +
      + +
      +

      Exposing attributes that do not directly map to accessibility API properties

      +

      + SVG user agents MUST conform to + Exposing attributes that do not directly map to accessibility API properties in + the Core Accessibility API Mappings [[!CORE-AAM]]. +

      +
      +
      + +
      +

      Role mapping

      +

      + Platform accessibility APIs traditionally have had a finite set of predefined + roles that are expected by assistive technologies + on that platform and only one or two roles may be exposed. +

      +

      + WAI-ARIA + only supports one active role at a time. However, multiple roles may be specified as an ordered set of space-separated valid role tokens. The additional roles are fallback roles, similar to + the concept of specifying multiple font families in case the first choice font is not supported. This allows the role taxonomy to be extended in future for specialized applications. The entire + role string is exposed to accessibility technologies where possible, so they can respond appropriately even if there is no equivalent role in the platform + API. +

      + +
      +

      General Rules

      +

      + SVG user agents MUST conform to the Role Mapping General Rules accessibility API computational requirements + in the Core Accessibility API Mappings [[!CORE-AAM]]. +

      +
      + +
      +

      SVG Element Mapping Tables

      +

      + This section defines how elements in SVG2 map to WAI-ARIA roles and platform accessibility APIs based on their native host language semantics, including which WAI-ARIA roles may be applied. + This section refers directly to both the + Role Mappings + in the Core Accessibility API Mappings [[!CORE-AAM]] specification and the Role Mappings in the Graphics Accessibility + API Mappings [[!GRAPHICS-AAM]] specification, which define how WAI-ARIA roles are mapped to platform accessibility APIs. +

      +

      a

      + + + + + + + + + + + + + + + +
      SVG Specification + a +
      + Default Platform + WAI-ARIA Role Mappings + + link role if the element has a valid href or xlink:href attribute. For a elements + that are not links, use the mapping for tspan if the a element is a descendent of text, or the mapping for g otherwise. +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + any role; see the Core Accessibility API Role Mappings and the + Graphics Accessibility API Role Mappings +
      +

      animate

      + + + + + + + + + + + + + + + +
      SVG Specification + animate +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      animateMotion

      + + + + + + + + + + + + + + + +
      SVG Specification + animateMotion +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      animateTransform

      + + + + + + + + + + + + + + + +
      SVG Specification + animateTransform +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      audio

      + + + + + + + + + + + + + + + +
      SVG Specification + audio +
      + Default Platform + WAI-ARIA Role Mappings + + Follow the recommendations for the HTML audio element + in the HTML Accessibility API Mappings specification [[!HTML-AAM]]. +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + application role +
      +

      canvas

      + + + + + + + + + + + + + + + +
      SVG Specification + canvas +
      + Default Platform + WAI-ARIA Role Mappings + + Follow the recommendations for the HTML canvas element + in the HTML Accessibility API Mappings specification [[!HTML-AAM]]. +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + any role; see the Core Accessibility API Role Mappings and the + Graphics Accessibility API Role Mappings +
      +

      circle

      + + + + + + + + + + + + + + + +
      SVG Specification + circle +
      + Default Platform + WAI-ARIA Role Mappings + + graphics-symbol role mapping if the element meets the criteria for + Including Elements in the Accessibility Tree; otherwise, no accessible object created +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + any role; see the Core Accessibility API Role Mappings and the + Graphics Accessibility API Role Mappings +
      +

      clipPath

      + + + + + + + + + + + + + + + +
      SVG Specification + clipPath +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created, for this element or any child content
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      cursor

      + + + + + + + + + + + + + + + +
      SVG Specification + cursor +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created, for this element or any child content
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      defs

      + + + + + + + + + + + + + + + +
      SVG Specification + defs +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created, for this element or any child content
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      desc

      + + + + + + + + + + + + + + + +
      SVG Specification + desc +
      + Default Platform + WAI-ARIA Role Mappings + + no accessible object created, for this element or any child content; see + Name and Description mapping +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      discard

      + + + + + + + + + + + + + + + +
      SVG Specification + discard +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      ellipse

      + + + + + + + + + + + + + + + +
      SVG Specification + ellipse +
      + Default Platform + WAI-ARIA Role Mappings + + graphics-symbol role mapping if the element meets the criteria for + Including Elements in the Accessibility Tree; otherwise, no accessible object created +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + any role; see the Core Accessibility API Role Mappings and the + Graphics Accessibility API Role Mappings +
      +

      feBlend

      + + + + + + + + + + + + + + + +
      SVG Specification + feBlend +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feColorMatrix

      + + + + + + + + + + + + + + + +
      SVG Specification + feColorMatrix +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feComponentTransfer

      + + + + + + + + + + + + + + + +
      SVG Specification + feComponentTransfer +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feComposite

      + + + + + + + + + + + + + + + +
      SVG Specification + feComposite +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feConvolveMatrix

      + + + + + + + + + + + + + + + +
      SVG Specification + feConvolveMatrix +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feDiffuseLighting

      + + + + + + + + + + + + + + + +
      SVG Specification + feDiffuseLighting +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feDisplacementMap

      + + + + + + + + + + + + + + + +
      SVG Specification + feDisplacementMap +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feDistantLight

      + + + + + + + + + + + + + + + +
      SVG Specification + feDistantLight +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feDropShadow

      + + + + + + + + + + + + + + + +
      SVG Specification + feDropShadow +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feFlood

      + + + + + + + + + + + + + + + +
      SVG Specification + feFlood +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feFuncA

      + + + + + + + + + + + + + + + +
      SVG Specification + feFuncA +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feFuncB

      + + + + + + + + + + + + + + + +
      SVG Specification + feFuncB +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feFuncG

      + + + + + + + + + + + + + + + +
      SVG Specification + feFuncG +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feFuncR

      + + + + + + + + + + + + + + + +
      SVG Specification + feFuncR +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feGaussianBlur

      + + + + + + + + + + + + + + + +
      SVG Specification + feGaussianBlur +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feImage

      + + + + + + + + + + + + + + + +
      SVG Specification + feImage +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feMerge

      + + + + + + + + + + + + + + + +
      SVG Specification + feMerge +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feMergeNode

      + + + + + + + + + + + + + + + +
      SVG Specification + feMergeNode +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feMorphology

      + + + + + + + + + + + + + + + +
      SVG Specification + feMorphology +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feOffset

      + + + + + + + + + + + + + + + +
      SVG Specification + feOffset +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      fePointLight

      + + + + + + + + + + + + + + + +
      SVG Specification + fePointLight +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feSpecularLighting

      + + + + + + + + + + + + + + + +
      SVG Specification + feSpecularLighting +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feSpotLight

      + + + + + + + + + + + + + + + +
      SVG Specification + feSpotLight +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feTile

      + + + + + + + + + + + + + + + +
      SVG Specification + feTile +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      feTurbulence

      + + + + + + + + + + + + + + + +
      SVG Specification + feTurbulence +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      filter

      + + + + + + + + + + + + + + + +
      SVG Specification + filter +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      foreignObject

      + + + + + + + + + + + + + + + +
      SVG Specification + foreignObject +
      + Default Platform + WAI-ARIA Role Mappings + + group role mapping if the element meets the criteria for + Including Elements in the Accessibility Tree; otherwise, no accessible object created +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + any role; see the Core Accessibility API Role Mappings and the + Graphics Accessibility API Role Mappings +
      +

      g

      + + + + + + + + + + + + + + + +
      SVG Specification + g +
      + Default Platform + WAI-ARIA Role Mappings + + group role mapping if the element meets the criteria for + Including Elements in the Accessibility Tree; otherwise, no accessible object created +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + any role; see the Core Accessibility API Role Mappings and the + Graphics Accessibility API Role Mappings +
      +

      hatch

      + + + + + + + + + + + + + + + +
      SVG Specification + hatch +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      hatchPath

      + + + + + + + + + + + + + + + +
      SVG Specification + hatchPath +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      iframe

      + + + + + + + + + + + + + + + +
      SVG Specification + iframe +
      + Default Platform + WAI-ARIA Role Mappings + + Follow the recommendations for the HTML iframe element + in the HTML Accessibility API Mappings specification [[!HTML-AAM]]. +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + application, document, img +
      +

      image

      + + + + + + + + + + + + + + + +
      SVG Specification + image +
      + Default Platform + WAI-ARIA Role Mappings + + img role mapping if the element meets the criteria for + Including Elements in the Accessibility Tree; otherwise, no accessible object created +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + any role; see the Core Accessibility API Role Mappings and the + Graphics Accessibility API Role Mappings +
      +

      line

      + + + + + + + + + + + + + + + +
      SVG Specification + line +
      + Default Platform + WAI-ARIA Role Mappings + + graphics-symbol role mapping if the element meets the criteria for + Including Elements in the Accessibility Tree; otherwise, no accessible object created +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + any role; see the Core Accessibility API Role Mappings and the + Graphics Accessibility API Role Mappings +
      +

      linearGradient

      + + + + + + + + + + + + + + + +
      SVG Specification + linearGradient +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      marker

      + + + + + + + + + + + + + + + +
      SVG Specification + marker +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      mask

      + + + + + + + + + + + + + + + +
      SVG Specification + mask +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      mesh

      + + + + + + + + + + + + + + + +
      SVG Specification + mesh +
      + Default Platform + WAI-ARIA Role Mappings + + img role mapping if the element meets the criteria for + Including Elements in the Accessibility Tree; otherwise, no accessible object created +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + any role; see the Core Accessibility API Role Mappings and the + Graphics Accessibility API Role Mappings +
      +

      meshPatch

      + + + + + + + + + + + + + + + +
      SVG Specification + meshPatch +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      meshRow

      + + + + + + + + + + + + + + + +
      SVG Specification + meshRow +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      metadata

      + + + + + + + + + + + + + + + +
      SVG Specification + metadata +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created, for this element or any child content
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      mpath

      + + + + + + + + + + + + + + + +
      SVG Specification + mpath +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      path

      + + + + + + + + + + + + + + + +
      SVG Specification + path +
      + Default Platform + WAI-ARIA Role Mappings + + graphics-symbol role mapping if the element meets the criteria for + Including Elements in the Accessibility Tree; otherwise, no accessible object created +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + any role; see the Core Accessibility API Role Mappings and the + Graphics Accessibility API Role Mappings +
      +

      pattern

      + + + + + + + + + + + + + + + +
      SVG Specification + pattern +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created, for this element or any child content
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      polygon

      + + + + + + + + + + + + + + + +
      SVG Specification + polygon +
      + Default Platform + WAI-ARIA Role Mappings + + graphics-symbol role mapping if the element meets the criteria for + Including Elements in the Accessibility Tree; otherwise, no accessible object created +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + any role; see the Core Accessibility API Role Mappings and the + Graphics Accessibility API Role Mappings +
      +

      polyline

      + + + + + + + + + + + + + + + +
      SVG Specification + polyline +
      + Default Platform + WAI-ARIA Role Mappings + + graphics-symbol role mapping if the element meets the criteria for + Including Elements in the Accessibility Tree; otherwise, no accessible object created +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + any role; see the Core Accessibility API Role Mappings and the + Graphics Accessibility API Role Mappings +
      +

      radialGradient

      + + + + + + + + + + + + + + + +
      SVG Specification + radialGradient +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      rect

      + + + + + + + + + + + + + + + +
      SVG Specification + rect +
      + Default Platform + WAI-ARIA Role Mappings + + graphics-symbol role mapping if the element meets the criteria for + Including Elements in the Accessibility Tree; otherwise, no accessible object created +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + any role; see the Core Accessibility API Role Mappings and the + Graphics Accessibility API Role Mappings +
      +

      script

      + + + + + + + + + + + + + + + +
      SVG Specification + script +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      set

      + + + + + + + + + + + + + + + +
      SVG Specification + set +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      solidColor

      + + + + + + + + + + + + + + + +
      SVG Specification + solidColor +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      source

      + + + + + + + + + + + + + + + +
      SVG Specification + source +
      + Default Platform + WAI-ARIA Role Mappings + + Follow the recommendations for the HTML source element + in the HTML Accessibility API Mappings specification [[!HTML-AAM]]. +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      stop

      + + + + + + + + + + + + + + + +
      SVG Specification + stop +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      style

      + + + + + + + + + + + + + + + +
      SVG Specification + style +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      svg

      + + + + + + + + + + + + + + + +
      SVG Specification + svg +
      + Default Platform + WAI-ARIA Role Mappings + + graphics-document +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + any role; see the Core Accessibility API Role Mappings and the + Graphics Accessibility API Role Mappings +
      +

      switch

      + + + + + + + + + + + + + + + +
      SVG Specification + switch +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      symbol

      + + + + + + + + + + + + + + + +
      SVG Specification + symbol +
      + Default Platform + WAI-ARIA Role Mappings + + graphics-object role mapping if the element meets the criteria for + Including Elements in the Accessibility Tree; otherwise, no accessible object created +

      + A symbol element is not directly rendered, and therefore not directly exposed in the accessibility tree. However, the role (default or author-supplied) for the element + will be used for the rendered instance of the symbol in the use-element shadow tree. Either the symbol or the use element, or both, may have an associated + accessible object, depending on where the author has provided names, descriptions, roles, or interactivity. +

      +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + any role; see the Core Accessibility API Role Mappings and the + Graphics Accessibility API Role Mappings +
      +

      text

      + + + + + + + + + + + + + + + +
      SVG Specification + text +
      + Default Platform + WAI-ARIA Role Mappings + + group role, but with the following platform-specific API mappings: +
      +
      + MSAA + + IAccessible2 +
      +
      + Role: + IA2_ROLE_PARAGRAPH +
      +
      + Interfaces: + IAccessibleText2; IAccessibleHypertext2 +
      +
      + UIA +
      +
      Control Type: Text
      +
      ATK
      +
      + Role: + ATK_ROLE_SECTION +
      +
      + Interfaces: + AtkText; AtkHypertext +
      +
      AX
      +
      AXRole: AXGroup
      +
      AXSubrole: (nil)
      +
      AXRoleDescription: "group"
      +
      +

      + The platform mappings given above are similar to those recommended for the HTML p element + in the HTML Accessibility API Mappings specification [[HTML-AAM]]. There is currently no WAI-ARIA role available that defines a distinct text block. However, such roles (denoting + paragraphs or distinct text regions) exist in many platform accessibility APIs and are therefore used instead of a generic group role. +

      +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + any role; see the Core Accessibility API Role Mappings and the + Graphics Accessibility API Role Mappings +
      +

      textPath

      + + + + + + + + + + + + + + + +
      SVG Specification + textPath +
      + Default Platform + WAI-ARIA Role Mappings + + group role mapping if the element meets the criteria for + Including Elements in the Accessibility Tree; otherwise, no accessible object created, but changes in + text styling SHOULD be exposed through properties of the parent text element where supported +

      The role mappings for textPath and tspan are an open issue.

      +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + any role; see the Core Accessibility API Role Mappings and the + Graphics Accessibility API Role Mappings +
      +

      title

      + + + + + + + + + + + + + + + +
      SVG Specification + title +
      + Default Platform + WAI-ARIA Role Mappings + no accessible object created; see Name and Description mapping
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      track

      + + + + + + + + + + + + + + + +
      SVG Specification + track +
      + Default Platform + WAI-ARIA Role Mappings + + Follow the recommendations for the HTML track element + in the HTML Accessibility API Mappings specification [[!HTML-AAM]]. +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +

      tspan

      + + + + + + + + + + + + + + + +
      SVG Specification + tspan +
      + Default Platform + WAI-ARIA Role Mappings + + group role mapping if the element meets the criteria for + Including Elements in the Accessibility Tree; otherwise, no accessible object created, but changes in + text styling SHOULD be exposed through properties of the parent text element where supported +

      The role mappings for textPath and tspan are an open issue.

      +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + any role; see the Core Accessibility API Role Mappings and the + Graphics Accessibility API Role Mappings +
      +

      use

      + + + + + + + + + + + + + + + +
      SVG Specification + use +
      + Default Platform + WAI-ARIA Role Mappings + + graphics-object role mapping if the element meets the criteria for + Including Elements in the Accessibility Tree; otherwise, no accessible object created +

      Note that the re-used graphics in the use element's shadow tree may still be included in the accessibility tree, even if the host element is not.

      +
      +

      + Previous drafts of this specification did not require that the re-used graphical elements be exposed directly; The use element was treated as an atomic object. This + was not consistent with the potential for interactive content or text within the re-used graphics. +

      +

      Corresponding with the change to directly expose re-used graphics, special rules for the accessible name and description of use elements are no longer required.

      +
      +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + any role; see the Core Accessibility API Role Mappings and the + Graphics Accessibility API Role Mappings +
      +

      video

      + + + + + + + + + + + + + + + +
      SVG Specification + video +
      + Default Platform + WAI-ARIA Role Mappings + + Follow the recommendations for the HTML video element + in the HTML Accessibility API Mappings specification [[!HTML-AAM]]. +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappings + application role +
      +

      view

      + + + + + + + + + + + + + + + +
      SVG Specification + view +
      + Default Platform + WAI-ARIA Role Mappings + + no accessible object created; see the section SVG views + for special processing requirements +
      Allowed WAI-ARIA Roles and Platform WAI-ARIA Role Mappingsno role may be applied
      +
      +

      + The use of the group role for + textPath + and tspan + is that of generic container for a span of text content which forms a distinct object (either because it has supplementary alternative text labels or descriptions or because it is + interactive). ARIA 1.1 does not have any roles for non-interactive spans of text. +

      +

      + More work is required to address whether text-specific platform accessibility API roles can more effectively serve this function. In particular, for ATK, the + ATK_ROLE_STATIC role is probably more appropriate than the usual mappings for group. +

      +

      Suggestions for improved mappings would be welcome, in GitHub Issue #2)

      +
      +
      +
      + +
      +

      State and Property Mapping

      +

      + This section describes how to expose WAI-ARIA states and properties. SVG user agents + MUST conform to the State and Property Mapping accessibility API computational requirements in the Core + Accessibility API Mappings [[!CORE-AAM]]. +

      +

      In addition, the following attributes on SVG elements require special processing:

      + +

      + The xlink prefix is used here to refer to the XLink namespace, http://www.w3.org/1999/xlink. Attributes of the given names in that namespace should be processed as + described here, regardless of how the namespace is applied in markup or via script. XLink-namespaced attributes are deprecated in SVG 2 [[SVG2]], but user agents are still expected to process + them, to maintain backwards compatibility. Nonetheless, SVG 2 requires that the href attribute in the default + namespace takes precedence over the XLink equivalent if both are set on a given element. In that case, the XLink version is not valid for the purpose of the name and description computation. +

      + +

      + The effective attribute for a given element, and therefore the state and property mapping, may be affected by declarative animation as described in the + Animation section. +

      +
      + +
      +

      Special Processing Requiring Additional Computation

      +
      +

      Name and Description

      +

      + When computing an accessible name or accessible description, user agents MUST conform to the section + titled Text Alternative Computation of the Accessible Name and Description specification [[!ACCNAME-AAM]], with the following + modifications for the SVG host language: +

      +
        +
      1. + Replace step 2A with the following: +
        + If the current node traversal is not a result of following a aria-labelledby or aria-describedby reference, and the current node is not included in the + accessibility tree according to the rules in + Excluding Elements from the Accessibility Tree + and Including Elements in the Accessibility Tree, return the empty string. +
        +
      2. +
      3. + Replace step 2D with the following: +
        +

        Otherwise, if performing a text alternative computation for an accessible name:

        +
          +
        • + If the current node has at least one direct child title element, select the appropriate title based on the language rules for the SVG specification, and return the title + text alternative as a flat string. +
        • +
        • If the current node is a link, and there was no child title element, but it has an xlink:title attribute, return the value of that attribute.
        • +
        +

        If performing a text alternative computation for an accessible description:

        +
          +
        • + If the current node has at least one direct child desc element, select the appropriate description based on the language rules for the SVG specification, and return the + concatenated text content of the description. +
        • +
        +
        +
      4. +
      5. + In step 2F, modify step iii + by replacing: +
        +

        For each child node of the current node:

        +
        + with +
        +

        If the element is a text container element, for each child node of the current node:

        +
        +
      6. +
      7. + Replace step 2H with the following: +
        +

        + Otherwise, if performing a text alternative computation for an accessible description, and the current node has at least one direct child title element, but the title + elements were not used when generating the accessible name for the node, then select the appropriate title based on the language rules for the SVG specification, and return + the title text content as the description. +

        +

        Otherwise, if the current node is a link, and it has an xlink:title attribute that was not used for the accessible name, return the value of that attribute.

        +
        +
      8. +
      + +

      + When determining whether an element has a direct child element, only actual DOM child elements are considered, regardless of whether or not the parent element has an associated + shadow tree. +

      + +
      +

      The net effect of these changes is to establish the following priority of alternative text values for the accessible name:

      +
        +
      1. aria-labelledby
      2. +
      3. aria-label
      4. +
      5. a direct child title element
      6. +
      7. xlink:title attribute on a link
      8. +
      9. for text container elements, the text content
      10. +
      +

      The alternative text values for the accessible description have the following priority:

      +
        +
      1. aria-describedby
      2. +
      3. a direct child desc element
      4. +
      5. for text container elements, the text content
      6. +
      7. a direct child title element that provides a tooltip, when ARIA label attributes are used to provide the accessible name
      8. +
      9. xlink:title attribute on a link, if not used to provide the accessible name
      10. +
      +

      + The aria-labelledby and aria-describedby properties can reference the element on which they are given, in order to concatenate one of the other text alternatives + with text from a separate element. +

      +
      +
      + +
      +

      Widget Values

      +

      + SVG user agents MUST conform to the + Widget Values + accessibility API computational requirements in the Core Accessibility API Mappings [[!CORE-AAM]]. +

      +
      + +
      +

      Relations

      +

      + SVG user agents MUST conform to the + Relations + accessibility API computational requirements in the Core Accessibility API Mappings [[!CORE-AAM]]. +

      + +
      +

      + The CORE-AAM section on Relations requires that assistive technologies SHOULD provide a method to navigate to (and within) structured content referenced by aria-describedby. + This conflicts with the current approach of not including non-rendered descriptive content in the accessibility tree. +

      +

      + See the issue discussion for that specification, and the + related issue about exposing SVG desc content. +

      +
      +
      + +
      +

      Group Position

      +

      + SVG user agents MUST conform to the + Group Position + accessibility API computational requirements in the Core Accessibility API Mappings [[!CORE-AAM]]. +

      +
      + +
      +

      Use-Element Shadow Trees

      + +

      + This specification uses the terms + shadow tree + and host + as defined by the DOM standard [[!DOM]], and the terms + use-element shadow tree + and element instance + as defined by SVG 2 [[!SVG2]]. +

      + +

      + SVG user agents MUST process the element instances generated for the use-element shadow tree as if those elements were children of the use element itself, with the following + conditions: +

      +
        +
      • +

        + When processing WAI-ARIA attributes on elements within a shadow tree, the user agent MUST first attempt to match any IDREF values against other elements in the same shadow tree, before + searching for a match in the host's node tree. If shadow trees are nested, the user agent MUST recursively search from the current shadow tree to the tree containing its host + use element, until the document tree is reached. +

        +
      • +
      • +

        In all other cases, when matching IDREF values in WAI-ARIA attributes, the user agent MUST NOT consider elements in the shadow tree of a use element.

        +
      • +
      + +
      +

      + The editors will be working to harmonize these guidelines with general rules for WAI-ARIA processing of shadow tree elements, such as in web components. Feedback from implementers is + requested on the practical feasibility of encapsulating IDREF matching in this manner. +

      +

      + General feedback on shadow DOM and ARIA should be discussed + in the Core-AAM issue. Feedback unique to SVG can be submitted to Issue #7 on + this specification. +

      +
      +
      + +
      +

      SVG Views

      +

      + SVG provides authors with the means of specifying a particular + view of the document. A view is applied through the target fragment of the document URL, either by referencing the id of + a view element, or by specifying a custom view using the SVG view specification + fragment identifier. +

      +

      + The visual effect of an SVG view is equivalent to modifying attributes on the parent svg element (for a view element) or the root element (for an SVG view + specification fragment). User agents SHOULD therefore modify the accessible object representing that svg + when a view is in effect. +

      +

      In particular, the following changes should be made:

      +
        +
      • + If the view includes a viewTarget attribute, the svg element SHOULD be mapped as if it had an aria-flowto attribute specifying the same list of IDREF + values contained in the viewTarget attribute. +
      • +
      • + If the view is applied using a view element, compute the accessible name and description for that element, ignoring the fact that a view element is excluded from + the accessibility tree. If the result is a non-empty string, it SHOULD replace the corresponding name or description for the svg element while the view is in effect. +
      • +
      +

      + A navigation action towards a URL including an SVG view specification or the id of a view element SHOULD be treated as a series of property change + events on the target svg element followed by navigation to that element. User agents MAY represent the property changes as the deletion of existing + nodes followed by the insertion of modified nodes. +

      + +
      +

      + SVG Views provide a functionality unique to SVG, with no direct equivalent in HTML documents. They may be used as the end-point of a navigation action, but are not themeselves a container + for the targetted content. They may also be used at the time an SVG document is embedded, to subset the visual content to only include a portion of the file. +

      +

      + The editors would be very interested in practical examples of SVG views in use, so that we may determine if the above requirements are sufficient. Particular issues to consider include + whether special rules are required for managing keyboard focus, or for excluding content that is rendered offscreen when a view is in effect. +

      +

      + In addition, the viewTarget attribute, and the corresponding parameter for SVG view fragments, has been deprecated in SVG 2. Their intended use, to trigger visual styling + changes in the target element, has never been well implemented by user agents. Without viewTarget, there would be no native way in SVG to indicate the semantic target of a + given view. For view elements (but not view fragments), a possible alternative is to encourage authors to directly specify aria-flowsto attributes. These would + then need to be mapped to the relevant svg element. +

      +

      + This raises the question of whether any other (or all) ARIA attributes should be mapped from the view element onto the accessible object for the svg element while + the view is in effect. This would require careful consideration of all possible consequences and conflicts. For example, should a view be able to change the role of the SVG element? +

      +

      + The aria-flowsto attribute is not well supported in assistive tools; there have been proposals to deprecate it in a future version. Are there other ways in which user agents + could expose the changed view, so that users of assistive technologies can quickly understand which parts of the graphic are visible? +

      +

      + Feedback on any of these points can be provided + on issue #8. +

      +
      +
      + +
      +

      Declarative Animation

      +

      + SVG animation elements may modify element attributes and style properties. CSS animations may modify style properties. Either type of animation may be triggered by user interaction, or may + run on a fixed schedule. +

      +

      + If an animation changes the effective value of a WAI-ARIA state or property attribute, or an SVG attribute that is described in the + State and Property Mapping section, the User Agent MUST expose the change in the same way as if the actual attribute value was changed. +

      +

      The role attribute is not animatable.

      +

      + If an animated change affects whether an element is rendered, or change whether it is visible in a way that would cause it to be excluded from the accessibility tree, user agents + SHOULD expose the change according to the guidelines in the + Changes to document content or node visibility section of the Core Accessibility API Mappings [[!CORE-AAM]]. +

      +
      +
      + +
      +

      Actions

      +

      + SVG user agents MUST conform to the + Actions + accessibility API computational requirements in the Core Accessibility API Mappings [[!CORE-AAM]]. +

      +
      + +
      +

      Events

      +

      + User agents fire events for user actions, + WAI-ARIA + state changes, changes to document content or node visibility, changes in selection, and operation of menus. Conforming user agents + MUST support the [[!CORE-AAM]] Events mappings. +

      +
      + +
      +

      Special Document Handling Procedures

      +

      + SVG user agents MUST conform to the + Special Document Handling Procedures + in the Core Accessibility API Mappings [[!CORE-AAM]]. +

      +
      + +
      +

      Security and Privacy Considerations

      +

      + Implementation of this specification is not expected to add any new security or privacy considerations to the web platform, relative to implementation of SVG ([[SVG2]]) and WAI-ARIA + ([[WAI-ARIA]]) separately. +

      +

      + If you believe there is a potential new security or privacy risk created by this specification, please raise an issue + in the specification's GitHub repository. +

      +
      + +
      +

      Appendices

      + + +
      +

      Acknowledgments

      +

      + In addition to the credited authors and editors, the participants in the SVG Accessibility Task Force contributed to the development of this document. Appreciation also goes to Joanmarie + Diggs and other implementers who have offered feedback on the drafts and helped with testing. +

      +
      +

      Past participants in the SVG Accessibility Task Force

      +
        +
      • Amelia Bellamy-Royds
      • +
      • Michael Cooper (W3C)
      • +
      • Erik Dahlström (Opera)
      • +
      • Amy Dai (Oracle Corporation)
      • +
      • Fred Esch (IBM Corporation)
      • +
      • Charles McCathie Nevile (Yandex)
      • +
      • Cameron McCormack (Mozilla Foundation)
      • +
      • Brian McNeily (SSB BART Group)
      • +
      • Heather Migliorisi
      • +
      • Charu Pandhi (IBM Corporation)
      • +
      • Janina Sajka
      • +
      • Doug Schepers (W3C)
      • +
      • Rich Schwerdtfeger (Knowbility)
      • +
      • Léonie Watson (The Paciello Group, LLC)
      • +
      • Jason White (Educational Testing Service)
      • +
      +
      +
      +
      + +
      + +
      +
      + +