aria-authoring-patterns SKILL.md skillA

aria-authoring-patterns from testland/qa is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.

Install it, pinned
mdr add testland/qa/aria-authoring-patterns@git:20260813.84b37f4

Pins git:20260813.84b37f4 in mdr.lock. Pin the fingerprint instead.

Audit grade
A, 17 of 17 checks passed
Kind
SKILL.md skill
Repository
testland/qa
Path
plugins/qa-accessibility/skills/aria-authoring-patterns/SKILL.md
Versions recorded
4
Latest version
git:20260813.84b37f4, committed Aug 13, 2026
First version recorded
Jun 11, 2026
Size
13,679 bytes
Repository stars
11
License
MIT

Reference for the W3C ARIA Authoring Practices Guide (APG) - covers the 31 canonical interactive-widget patterns (Combobox, Dialog, Menu, Tabs, Tree, etc.), their required ARIA roles and states, the keyboard-interaction model per pattern, and the canonical-violations to watch for. Use when authoring a custom interactive widget that doesn't have a native HTML equivalent, or when reviewing one for ARIA correctness.

Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.

What the file says

# aria-authoring-patterns

## Overview

The W3C ARIA Authoring Practices Guide (APG) is the canonical
reference for **how** to build accessible custom widgets - patterns
where native HTML doesn't have a single matching element
([apg-patterns][apg]).

[apg]: https://www.w3.org/WAI/ARIA/apg/patterns/

The APG documents 31 patterns; each one specifies:

- The required `role` attribute.
- Required and optional `aria-*` states (e.g. `aria-expanded`,
  `aria-selected`, `aria-current`).
- The full keyboard-interaction model (Tab / Arrow keys / Enter /
  Escape / Home / End / Type-ahead).
- DOM structure conventions.
- Common pitfalls.

## When to use

- Authoring a custom widget (Combobox, Tabs, Tree, Carousel, etc.).
- Reviewing a third-party UI library's component for ARIA
  correctness.
- Adding ARIA to an existing widget that was hand-rolled without
  it.
- Configuring assertions in `axe-a11y`
  (or its pa11y reference) to enforce per-pattern
  conventions.

## The first rule of ARIA

The APG (and WAI more broadly) consistently emphasizes:

> **No ARIA is better than bad ARIA.** Native HTML elements with
> built-in semantics are preferred over custom widgets whenever
> possible.
…

Read the whole file at its exact version.

How to install

The exact contents, by fingerprint
mdr add testland/qa/aria-authoring-patterns@sha256:c5c5d616400fc7e1

The line at the top of this page pins the label git:20260813.84b37f4, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.

Badge

mdr badge

[![mdr](https://markdownregistry.com/badge/art_qrhddd3lrvb4rbp2.svg)](https://markdownregistry.com/a/art_qrhddd3lrvb4rbp2)

2 badge image fetches in 30 days. What the badge shows.

Versions

The registry has recorded 4 versions of this file, between Jun 11, 2026 and Aug 13, 2026, about one every 21 days.

versioncommittedcommitsizeaudit
git:20260813.84b37f4 latest2026-08-13 84b37f4 13,679 BA view · diff
git:20260724.d4db7562026-07-24 d4db756 13,600 BA view · diff
git:20260706.4e1409c2026-07-06 4e1409c 13,868 BA view · diff
git:20260611.007ae6c2026-06-11 007ae6c 13,885 BA view

Audit of the latest version

A  17 of 17 checks passed. Fixed automatic checks with no AI involved, so the same checks give the same answer every run.
  • pass: Frontmatter block present
  • pass: Frontmatter declares a name
  • pass: Frontmatter declares a description
  • pass: Size between 200 bytes and 200 KB (13679 bytes)
  • pass: No zero-width or bidi control characters
  • pass: No instruction hidden inside an HTML comment
  • pass: No link to an exfiltration or paste host
  • pass: No credential-shaped string
  • pass: No instruction to send local credentials anywhere
  • pass: No text hidden with inline styles
  • pass: No prompt-injection phrasing
  • pass: No curl or wget piped into a shell
  • pass: No recursive delete of root, home or parent
  • pass: No instruction to read or print local credentials
  • pass: No base64 blob over 200 characters
  • pass: No link to a raw IP address
  • pass: No script tag

Source

GitHub

testland/qa · 11 stars · license MIT · pushed 2026-10-20 · branch main

API

GET https://markdownregistry.com/api/v1/artifacts/art_qrhddd3lrvb4rbp2
GET https://markdownregistry.com/api/v1/resolve?ref=testland/qa/aria-authoring-patterns
GET https://markdownregistry.com/api/v1/blob/c5c5d616400fc7e1e7d43e3974dced6af005a85936d3771757839aa25fcbb1c7

Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.

Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.

More from testland/qa

CLAUDE.md CLAUDE.md file
testland/qa · CLAUDE.md
git:20261011.164aa71 · audit A · 11 stars
a11y-violation-gate SKILL.md skill
testland/qa · plugins/qa-accessibility/skills/a11y-violation-gate/SKILL.md · Builds a CI gate that fails the build on **new** WCAG / a11y violations introduced by a PR while grandfathering…
git:20260813.84b37f4 · audit A · 11 stars
axe-a11y SKILL.md skill
testland/qa · plugins/qa-accessibility/skills/axe-a11y/SKILL.md · Automated accessibility scanning across the five engines - axe-core (primary), pa11y, Lighthouse a11y, WAVE, and IBM…
git:20260813.84b37f4 · audit B · 11 stars
screen-reader-test-author SKILL.md skill
testland/qa · plugins/qa-accessibility/skills/screen-reader-test-author/SKILL.md · Builds the full manual-accessibility artifact surface: step-by-step screen-reader test scripts for NVDA (Windows), JAWS…
git:20260813.84b37f4 · audit A · 11 stars
wcag-color-contrast SKILL.md skill
testland/qa · plugins/qa-accessibility/skills/wcag-color-contrast/SKILL.md · Reference for WCAG 2.2 color-contrast conformance - covers SC 1.4.3 Contrast (Minimum, AA), 1.4.6 Contrast (Enhanced…
git:20260813.84b37f4 · audit A · 11 stars
wcag-compliance-reporter SKILL.md skill
testland/qa · plugins/qa-accessibility/skills/wcag-compliance-reporter/SKILL.md · Builds a per-page WCAG 2.2 compliance score report by aggregating output from one or more accessibility scanners…
git:20260813.84b37f4 · audit A · 11 stars
wcag-keyboard-navigation SKILL.md skill
testland/qa · plugins/qa-accessibility/skills/wcag-keyboard-navigation/SKILL.md · Reference catalog for WCAG 2.2 keyboard-navigation conformance - covers SC 2.1.1 (Keyboard), 2.1.2 (No Keyboard Trap)…
git:20260813.84b37f4 · audit A · 11 stars
ai-spec-coverage-mapper SKILL.md skill
testland/qa · plugins/qa-ai-assisted/skills/ai-spec-coverage-mapper/SKILL.md · Build-an-X workflow that uses an LLM to map existing tests to spec sections - given a spec doc + the test suite, the…
git:20260813.83125c6 · audit A · 11 stars
ai-test-generator SKILL.md skill
testland/qa · plugins/qa-ai-assisted/skills/ai-test-generator/SKILL.md · Generates tests from natural-language specs (acceptance criteria, user stories, requirements) using an LLM, with…
git:20260813.83125c6 · audit A · 11 stars
model-based-test-graph-author SKILL.md skill
testland/qa · plugins/qa-ai-assisted/skills/model-based-test-graph-author/SKILL.md · Build-an-X workflow for model-based testing (MBT) per the canonical definition - authors a state-machine model of the…
git:20260813.099f6f5 · audit A · 11 stars
api-chaos-runner SKILL.md skill
testland/qa · plugins/qa-api-testing/skills/api-chaos-runner/SKILL.md · Runs the project's existing API tests under injected network chaos - latency, timeouts, dropped connections, bandwidth…
git:20260726.19ddd36 · audit A · 11 stars
karate-testing SKILL.md skill
testland/qa · plugins/qa-api-testing/skills/karate-testing/SKILL.md · Authors Karate `.feature` files using its Gherkin-flavored DSL for HTTP API tests, leverages the `match` keyword with…
git:20260728.1bce424 · audit A · 11 stars

Every file in testland/qa

Browse by kind, by grade A, or by owner.