Generated banner for Accessibility
Generated logo for Accessibility

Accessibility

MicrosoftOfficialPublished by Microsoft

  • Skill
  • Tool integration
  • Software development
  • MIT
  • Low risk
  • Has scripts

From the author

Consolidated accessibility skill entrypoint for WCAG 2.2, ARIA Authoring Practices, cognitive accessibility, Section 508, EN 301 549, design intent verification, and the Accessibility Planner workflow.
— the description by Microsoft

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The accessibility skill provides a structured approach to managing accessibility requirements across the development lifecycle. It includes a six-phase Accessibility Planner workflow, a command-line scanner for static analysis, and a runtime probe harness for verifying interaction-based accessibility. The skill enforces a doctrine of method adequacy, ensuring that verification methods are only used to decide criteria they are capable of observing, and supports the generation of evidence bundles for review.

What it does

  • Provides a six-phase workflow for accessibility discovery, planning, and backlog handoff.
  • Wraps the axe-core CLI to perform static accessibility scans on web pages.
  • Executes Playwright-based runtime probes to verify interaction behavior and screen-reader announcements.
  • Enforces method adequacy rules to distinguish between static findings and interaction-based verification.
  • Generates deterministic evidence bundles for accessibility reviews and reporting.
  • Maps findings to WCAG 2.2, ARIA Authoring Practices, and other accessibility standards.

When to use it

  • When planning accessibility requirements for a new project or feature.
  • When performing automated static scans of web content for common accessibility defects.
  • When verifying complex interaction behaviors that static analysis cannot fully evaluate.
  • When building an evidence register to track accessibility conformance across development phases.

Advantages

  • Standardizes accessibility verification across different projects and teams.
  • Prevents over-reliance on static analysis for complex interaction-based criteria.
  • Supports tiered enforcement postures to match project risk and maturity.
  • Integrates with standard CI workflows for automated accessibility testing.

Usage examples

“Scan my local file index.html for accessibility violations.”
The skill runs the axe-core scanner against the file and outputs a normalized JSON report of findings.
“Run the accessibility runtime probes for my project.”
The skill executes the configured Playwright probes and aggregates the results into a coverage matrix.

Install

Documentation by Microsoft

Accessibility — Skill Entry

This skill is the canonical accessibility reference contract for HVE Core. Agents and instructions invoke this skill by name and rely on it to own framework reference resolution, phase guidance resolution, and the scanner CLI entrypoint.

Framework references

Assessment reference (cross-cutting, not a conformance framework):

  • Assistive-technology announcement model — read this when deciding the announcement-class criteria (WCAG 1.3.1, 4.1.2, 4.1.3): what a screen-reader user should hear, and how to decide it with an accessibility-tree assertion or a manual AT pass.

Accessibility Planner workflow

The Accessibility Planner runs six phases, each keyed to a state id:

  1. Phase 1 — Discovery (discovery)

  2. Phase 2 — Framework Selection (framework-selection)

  3. Phase 3 — Standards Mapping (standards-mapping)

  4. Phase 4 — Plan Risk Assessment (plan-risk-assessment)

  5. Phase 5 — Impact and Evidence (impact-evidence)

  6. Phase 6 — Backlog Handoff (backlog-handoff)

Phase reference index

  • Phase 1 — Discovery: capture-coaching.md — read this when running exploration-first capture questioning.

  • Phase 2 — Framework Selection: framework-selection.md — read this when choosing which frameworks and conformance level apply.

  • Phase 3 — Standards Mapping: walk the framework references roll-up tables to emit controlMappings; consumed by Phase 5. No dedicated file — mapping is driven by the framework roll-ups.

  • Phase 4 — Plan Risk Assessment: capture-coaching.md governs the questioning posture when escalation triggers reopen scoping; tier criteria are applied per the Accessibility Planner identity instructions and recorded as riskClassification.tier. No dedicated file — the accessibility risk surface is narrow enough to stay inline.

  • Phase 5 — Impact and Evidence: impact-assessment.md — read this when building the evidence register, tradeoff log, and seed work-items.

  • Phase 6 — Backlog Handoff: backlog-handoff.md — read this when rendering work items and validating handoff gates.

Method adequacy (decide vs inform)

Method adequacy is the doctrine that a verification method may only be recorded as satisfying a success criterion when that method can actually decide the criterion. A method that can observe a related signal but cannot confirm the user-facing outcome only informs the criterion; it raises or lowers suspicion but never closes it. This section is the canonical definition; the planner evidence register, the reviewer verdict logic, and the runtime probe harness all resolve adequacy through it.

The machine-readable adequacy source is scripts/runtime_a11y/probe-criteria-map.json. Each probe entry lists the criteria it decides and the criteria it only informs. A result counts as adequate only when the winning method appears in the decides list for that criterion and state.

Failure classes and adequate methods

Accessibility defects generalize into five classes. Static analysis (axe, eslint-plugin-jsx-a11y, snapshot structure counts) can decide only the first class; the remaining four require an interaction-state probe or an assistive-technology (AT) pass to be decided rather than merely informed.

ClassRepresentative WCAG SCWhat static analysis can doAdequate method to decide
Static-decidable structure1.1.1, 1.4.3, 4.1.2 (name present), 2.4.2, 3.1.1Decideaxe / static scan
Interaction behavior2.1.1, 2.1.2, 2.4.3, 2.4.7, 2.4.11Inform onlyKeyboard/interaction probe driving keys across focus/open states, or manual keyboard pass
Announcement correctness1.3.1, 4.1.2 (computed name/role), 4.1.3Inform onlyAccessibility-tree assertion of computed name/role/live, or manual AT pass (Windows NVDA or human-led JAWS)
Adaptive rendering1.4.4, 1.4.10, 1.4.12, 2.4.11Inform onlyRendered probe at 200% zoom, 320px reflow, and text-spacing states
Faux semantics1.3.1 (faux headings), 2.4.3 (faux controls)Cannot seeHeuristic source pass plus accessibility-tree assertion; no element exists for a rule engine to flag

For the announcement class, the assistive-technology announcement model specifies what the user should hear per criterion and how to decide it. For the interaction and faux-semantics classes, the focus-management anti-pattern catalog enumerates the defects that pass a static scan yet break keyboard and screen-reader users.

Adequacy rule
  • A control in the interaction, announcement, adaptive-rendering, or faux-semantics classes cannot be recorded as fully satisfied on static evidence alone. Static evidence caps such a control at a partial state until an adequate method is attached.

  • A criterion whose winning method only informs it is never a conformance verdict; it is a lead that routes to an adequate method or a manual pass.

  • Preserve the adequacy determination alongside the status so downstream planners and reviewers do not re-promote an inadequately verified control.

This doctrine and its class taxonomy are repository-original content licensed under CC BY 4.0; the underlying success-criterion definitions remain with WCAG 2.2 as cited in wcag-22.md.

Calibration is evidence quality, not a conformance verdict

Calibration establishes that the assistive-technology stack behaves as expected before its output is trusted. Its checkpoints record driver identity, profile fingerprint, and artifact hashes for a journey that passed.

A checkpoint is deliberately not a matrix input. Nothing in the coverage or outcome pipeline reads one, and that separation is intended rather than unfinished. A passing calibration says the harness was working; it does not say the surface satisfies a success criterion. Wiring checkpoints into coverage would turn a statement about the tool into a statement about the product.

If calibration evidence should ever influence coverage, that is new design work requiring its own review: it needs an explicit mapping from a journey to a criterion, surface, and state, and it must respect the same method-adequacy rules as any other evidence.

Gate strictness by assessment tier

The enforcement posture for the interaction, announcement, adaptive-rendering, and faux-semantics classes graduates with the assessment depth tier recorded in riskClassification.tier, so the gate inherits the rigor a project opted into rather than applying one global switch:

  • basic — the adequate-method probes (keyboard, widget-keyboard, live-region, aria-tree, virtual-sr) report advisory (warn-only); the always-decidable core probes still block.

  • standard (default) — ratchet: the adequate-method probes block on new or changed surfaces and stay advisory over the existing backlog, so no new defect in these classes ships while legacy content is surfaced without freezing the project.

  • comprehensive — the adequate-method probes block on every in-scope surface.

The always-decidable core probes (axe, DOM hygiene, broken links, console errors, target size, contrast, reflow/resize) block at every tier. The CI workflow template implements this dial through the A11Y_TIER and A11Y_RATCHET_SURFACES inputs; the Accessibility Reviewer applies the same graduation to its FAIL and PARTIAL verdicts.

Tooling

The scanner CLI (scripts/scan.py) wraps the Node-based axe-core scanner and normalizes its findings into a stable JSON shape.

Prerequisites
  • Python 3.11+ with uv available on PATH.

  • Node.js with npx available on PATH.

  • Network access on first run so npx can fetch @axe-core/cli.

Quick Start
uv run scripts/scan.py https://example.com --allow-host example.com
uv run scripts/scan.py ./page.html --output results.json
uv run scripts/scan.py file:///path/to/page.html

Loopback HTTP(S) targets need no additional option. Every other remote host requires either a matching, repeatable --allow-host HOST value or the broader --allow-external confirmation. Local paths and local file: URIs must resolve to existing regular files. Network shares, remote file authorities, directories, missing files, credentials, leading-dash targets, and non-HTTP(S) remote schemes are rejected before the axe CLI starts.

Parameters Reference
ParameterRequiredDefaultDescription
targetYes—Authorized HTTP(S) URL or existing regular local file to scan.
--outputNostdoutPath to write the normalized JSON results.
--allow-hostNononeAuthorize one non-loopback HTTP(S) host; repeat as needed.
--allow-externalNofalseConfirm access to any non-loopback HTTP(S) host.

Remote authorization applies to the initial scanner target only. It does not constrain browser redirects, DNS address changes, subresources, WebSockets, Service Workers, downloads, or other browser-derived requests. Run the scanner only from a workstation whose network reach matches the target's trust level.

Script Reference
  • Entrypoint: scripts/scan.py

  • Output shape:

    {
      "target": "<scanned target>",
      "summary": {
        "violations": 0,
        "passes": 0,
        "incomplete": 0,
        "inapplicable": 0
      },
      "violations": [
        { "id": "", "impact": "", "description": "", "nodes": 0 }
      ]
    }
  • Exit codes:

    • 0 — scan completed successfully.

    • 1 — scan failed or returned invalid output.

    • 2 — scanner unavailable (Node.js or @axe-core/cli missing).

Troubleshooting
SymptomLikely causeActionExit code
scanner unavailable errorNode.js or npx not on PATHInstall Node.js so npx resolves, then re-run.2
Long pause or download on first runnpx is fetching @axe-core/cliAllow network access on the first run; later runs use the cache.—
Refusing to probe non-loopback hostRemote host was not explicitly authorizedAdd --allow-host HOST or confirm with --allow-external.2
Local scan target does not existLocal path or file URI cannot be resolvedSupply an existing regular local file, not a directory or share.2
scan failed or returned invalid outputaxe-core CLI errored or emitted non-JSONConfirm the target URL or file is reachable and well-formed.1
Empty violations but issues expectedPage rendered after the scan, or rules N/AConfirm the target fully loads; check summary.inapplicable.0
Mapping findings to frameworks

Each violation's impact is one of minor, moderate, serious, or critical. axe rule tags decode to WCAG success criteria by stripping the wcag prefix and inserting decimals:

axe tagWCAG success criterion
wcag1111.1.1 Non-text Content
wcag1431.4.3 Contrast (Minimum)

WCAG success criteria are normative; the axe techniques that surface them are informative. Treat scanner output as evidence pointing at a criterion, not a conformance verdict.

Runtime probe harness

The runtime probe harness (scripts/runtime_a11y) runs Playwright-based accessibility probes against a project-specific surface inventory and aggregates the results into a coverage matrix. For workflow orchestration, ask the user to run the manual-only accessibility-coverage-matrix skill (/accessibility-coverage-matrix); it is not model-invocable. Use the Accessibility Surface Inventory subagent as the canonical producer of the runtime config. Activate it by name; when it does not resolve, warn the user that the capability is unavailable and stop the dependent step.

Harness prerequisites

Complete these once before any runtime-harness command. They are separate from the scan.py prerequisites above.

  • Python 3.11+ with uv available on PATH.

  • Node.js available on PATH, plus system Google Chrome, because the probes target channel: 'chrome'.

  • Skill-local Node dependencies installed under scripts/runtime_a11y. The CLI fails fast with an install hint when they are missing.

  • Automated Windows NVDA runs additionally require the manifest-selected Guidepup NVDA asset. Machine setup and asset installation are separate actions from npm ci.

Install the harness dependencies from the scripts/runtime_a11y directory:

PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm ci
$env:PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD = '1'; npm ci

PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 avoids downloading bundled browsers that the harness never uses.

For automated NVDA runs, prepare the Windows machine once, then install the asset selected by the skill-local Guidepup package. Run the asset command again after updating Guidepup:

Set-Location <skill-root>/scripts/runtime_a11y
npx --yes --registry=https://registry.npmjs.org/ @guidepup/[email protected] setup
npx --yes --registry=https://registry.npmjs.org/ @guidepup/[email protected] install nvda

The commands configure the machine and write versioned assets to the Guidepup user cache. They are not part of ordinary dependency installation. Run the prerequisite-only probe before a calibration session:

uv run scripts/runtime_a11y/__main__.py run-calibration --config <path-to>/a11y-runtime.config.json --prerequisite-only

The preflight reports the skill-local library, manifest-selected NVDA asset, and any conflicting NVDA process independently. Do not start a personal NVDA instance before an automated run; the harness starts an isolated session and rejects an existing process.

Product-neutral screen-reader cases live in scripts/runtime_a11y/screen-reader-cases.json. A downstream binding supplies named routes, targets, states, and explicit execution recipes. Catalog digest drift, missing target closure, duplicate identities, unsupported commands, secret-bearing binding keys, and inferred actions fail before browser startup.

Use repeatable run-calibration --journey <id> arguments for an authorized live subset. Run the downstream integrity recipe before product cases and keep real NVDA advisory/manual. For deterministic evidence, use run-all --probe <probe-id> with surface/state filters or a reviewed probeScoping configuration; ordinary run-all must not be treated as permission to start a real screen reader.

Invocation

Run the harness through its script entrypoint. Invoke it from the skill root, which is the directory holding pyproject.toml, so uv resolves the skill's own environment. This matches the invocation convention used by scan.py and the other Python skills, and it needs no PYTHONPATH.

uv run scripts/runtime_a11y/__main__.py run-all --config a11y-runtime.config.json --out results.json
uv run scripts/runtime_a11y/__main__.py probe <probeId> --config a11y-runtime.config.json
uv run scripts/runtime_a11y/__main__.py render-artifacts --matrix coverage-matrix-repo.json --output-dir .copilot-tracking/accessibility/coverage --repo-slug repo
uv run scripts/runtime_a11y/__main__.py compose-evidence --help

To run from any other working directory, pin the skill as the uv project and use the same script path:

uv run --project <skill-root> <skill-root>/scripts/runtime_a11y/__main__.py run-all --config a11y-runtime.config.json --out results.json
  • --config resolves relative to the current working directory.

  • --out writes the aggregated JSON document to disk.

  • --base-url overrides the configured base URL. It must remain a loopback origin unless the host is allowlisted or --allow-external is supplied.

  • --trace captures Playwright traces and screenshots.

  • --allow-external confirms intentional probing of a non-loopback host.

  • render-artifacts turns a rendered matrix JSON document into the complete coverage evidence bundle.

Evidence bundle composition

compose-evidence combines downstream-owned catalogs, cadence scope, run context, normalized source envelopes, state proofs, and optional qualified-reviewer supplements into one deterministic evidence bundle. It is separate from render-artifacts: rendering creates coverage, EARL, and manual-plan views from a matrix, while composition creates a revision-bound trust envelope across evidence producers.

The command requires explicit input paths and never infers product scope, Git state, time, retention, branch policy, or a release verdict. A consuming project owns those decisions. The composer validates artifact bytes beneath --artifact-root, preserves conflicts and quarantined results, and always emits non-attestation metadata. Automation, reviewer evidence, and release evidence have separate completeness states.

For pull requests, a valid initial bundle may report reviewer evidence as pending. A qualified reviewer can later provide a privacy-minimized, digest-bound supplement and registry snapshot for deterministic recomposition against the prior bundle. Recomposition supplies both --prior-bundle and its independently retained --prior-bundle-digest; omission or mutation of prior history fails closed. Missing required reviewer evidence blocks release completeness, not ordinary bundle production. Raw screen-reader phrases and restricted transcript paths are forbidden in ordinary bundles; only approved counts, redacted metadata, and digests cross this boundary.

Use --require-completeness automated, reviewer, or release only when the downstream workflow intends that dimension to gate. Valid incomplete bundles are still written for diagnosis. The additional exits are:

Exit codeMeaning
5Automated evidence is incomplete.
6Reviewer evidence is pending or invalid.
7Release evidence is incomplete.

Existing exits 0 through 4 retain their meanings. The JSON contracts live beside the runtime at evidence-bundle.schema.json, evidence-source.schema.json, evidence-scope.schema.json, screen-reader-method-cell.schema.json, and qualified-human-result.schema.json.

For a complete adopter path from an inactive template to a first retained bundle and deterministic recomposition, including schema-valid examples for every authored input, read references/evidence-composition-adoption.md.

Visual review capture

capture-visual-review records deterministic screenshot evidence for the configured surfaces and states. It requires visualReview.enabled to be true in the runtime config.

uv run scripts/runtime_a11y/__main__.py capture-visual-review \
  --config <path-to>/a11y-runtime.config.json \
  --run-root .copilot-tracking/accessibility/local-runs/<run-name>
  • --run-root selects the evidence directory. It resolves relative to the repository root and must land on a child path inside .copilot-tracking/accessibility/local-runs. Paths outside that root, and traversal segments, are rejected.

  • Omitting --run-root allocates a timestamped run directory beneath that same root.

  • --visual-surface and --visual-state narrow the capture to specific configured ids.

  • The server the command targets follows serveMode. See Server modes.

Server modes

serveMode in the runtime config decides whether the harness manages a server for capture-visual-review.

serveModeBehavior
autoReuses a healthy server at the configured loopback origin, otherwise builds and starts one it owns and stops afterward.
servedRequires a server already answering the configured loopback origin, and fails with the expected origin and start command when none responds.
externalNever probes or starts a server. The configured target must already be reachable.
offNever probes or starts a server.

auto and served accept only loopback origins, because the harness will not manage or health-probe a remote server. A non-loopback target still requires the allowlist or --allow-external, and is only valid with external or off.

Under auto, starting an owned server builds the site first, so a capture that has to start its own server takes several minutes before the first screenshot. Leave a server running at the configured origin to skip that cost, which is the reuse path.

The Docusaurus site in this repository is configured for auto at http://127.0.0.1:3001, which is the same production-build origin the Playwright end-to-end suite uses. Capturing against the production build keeps visual evidence consistent with what continuous integration verifies.

Config summary

The harness loads scripts/runtime_a11y/config-schema.json and expects a runtime config with fields such as baseUrl, serveMode, allowlist, routes, surfaces, and probeScoping. The config defines the surfaces and interaction states the probes execute. A runtime guard blocks non-loopback targets unless the host is allowlisted or the caller supplies --allow-external. serveMode controls server ownership for visual review capture, described under Server modes.

Real-NVDA journeys support three capture modes:

  • single reads the cumulative speech log after commands and the configured settle interval.

  • clear-and-capture clears earlier speech before the settle interval, then reads the cumulative log.

  • action wraps an existing post-start declarative trigger with Guidepup action capture. Assertions can select actionSpeech or actionNormalizedSpeech to evaluate only output attributed to that trigger.

Action capture waits for Guidepup's one-second speech quiet window. It is appropriate for immediate interaction-driven announcements but does not extend to arbitrary delayed updates and cannot create speech that NVDA does not emit. Keep single, clear-and-capture, accessibility-tree evidence, and manual AT evidence available for those cases. Action mode fails closed when the journey lacks triggerAfterDriverStart, a declarative trigger, a real Guidepup driver, or action-capture support.

Probe inventory and adequacy map

The harness currently includes these probes under scripts/runtime_a11y/runner:

WCAG and ARIA APG probes:

  • probe-axe

  • probe-keyboard-traversal

  • probe-focus-visible

  • probe-focus-obscured

  • probe-live-region

  • probe-aria-tree

  • probe-widget-keyboard

  • probe-reflow-resize

  • probe-target-size

  • probe-contrast

  • probe-forced-colors

  • probe-reduced-motion

  • probe-structure-crawl

  • probe-name-in-label

  • probe-use-of-color (1.4.1)

  • probe-text-spacing (1.4.12)

  • probe-hover-focus (1.4.13)

  • probe-link-purpose (2.4.4)

  • probe-input-purpose (1.3.5)

  • probe-forms (3.3.2, informs 3.3.1/3.3.3)

  • probe-context-change (3.2.1, 3.2.2)

  • probe-orientation (1.3.4)

  • probe-audio-control (1.4.2)

  • probe-timing (2.2.1)

  • probe-zoom-blocker (1.4.4, informs 1.4.10)

  • probe-virtual-sr (4.1.2 name/role announcement captured from a virtual screen reader's spoken-phrase log; informs 1.3.1)

  • probe-real-sr (real Windows NVDA announcement assertions through a Guidepup adapter; only decides when configured expectations are present and the AT stack is available)

Non-WCAG defect-scan probes (framework defect-scan):

  • probe-console-errors (console/page errors)

  • probe-broken-links (same-origin 404s)

  • probe-dom-hygiene (duplicate ids, positive tabindex, missing/duplicate landmarks)

  • probe-title-lang (empty title, invalid lang)

Method adequacy is encoded in scripts/runtime_a11y/probe-criteria-map.json. Each entry records which criteria a probe can decide and which criteria it can only inform. A result only counts as adequate when the winning method is allowed by that mapping.

Coverage engine outputs

The matrix engine in scripts/runtime_a11y/matrix expands the criterion x surface x state grid, merges updates deterministically, and preserves human-confirmed findings over lower-priority automation. It computes adequate-coverage percentages by framework and overall. The render-artifacts command emits a deterministic bundle containing coverage-matrix-{repo-slug}.json, coverage-matrix-{repo-slug}.md, accessibility-results-{repo-slug}.earl.jsonld, manual-at-testplan-{repo-slug}.md, manual-at-testplan-{repo-slug}.yaml, and accessibility-artifacts-{repo-slug}.json.

The EARL (Evaluation and Report Language) JSON-LD export is the normalized results contract for interoperability with the ACT Rules ecosystem and downstream VPAT or EAA review. Each evaluated cell becomes one stable earl:Assertion that records subject, criterion, state, method, method adequacy, result date, and evidence. A result whose winning method only informs its criterion is earl:cantTell, never a false earl:passed. Inapplicable cells are earl:inapplicable; unevaluated cells are omitted. The paired manual plans contain cells that still require a human-deciding method and provide blank result fields for evidence writeback.

Public ARIA-AT and execution contract

The catalog in scripts/runtime_a11y/aria-at-catalog.json is the repository's documented source of truth for generated AT-oriented cases. Its provenance fields are strict and immutable: each mapping records a local catalog version, a canonical upstream URL, a commit-pinned upstream URL, and the upstream commit SHA used for the reviewed refresh. The repository does not copy upstream assertion tables or prose; it paraphrases official W3C and ARIA-AT intent and cites the source in the generated artifacts.

The current public posture is intentionally conservative. The five starter defaults (modal dialog, checkbox, select-only combobox, menu button, and tabs) are citation-bearing manual-only mappings because the richer AT-mode and quick-navigation semantics that these patterns can require are not faithfully modeled by the current structured command boundary. Runtime overrides may create explicit synthetic contract tests, but those are always non-pass candidate evidence and never accessibility conformance evidence. The resolver uses the documented fallback order of state -> surface -> catalog; commands and assertions are stored as atomic arrays, and an explicit empty array intentionally disables execution for a given case.

Unknown patterns remain generic manual drafts or project-refinement markers rather than a fake automation pass. Equally specific ambiguity is treated as a configuration error before rendering or driver startup. The public CLI exposes render-artifacts as an optional mapping configuration step and run-at-plan as the supported path for listing, selecting, executing, and reporting generated AT cases. The real-driver boundary currently supports Guidepup-backed Windows NVDA automation plus manual-only JAWS and other operator-led flows; synthetic execution is a separate evidence channel and never claims a pass. The generated manual plans stay linked to the shared real screen reader testing runbook, while case-specific commands remain inside the generated plan output rather than being written back into the matrix or coverage artifacts.

The generated manual cases, synthetic or real execution evidence, ACT-style result reasoning, EARL outcomes, and later qualified-human review are distinct layers. The public workflow renders representative fixtures through the documented CLI and inspects the six generated artifacts, but it does not commit golden outputs for the inspection bundle.

Exit codes
  • 0 indicates the harness completed successfully, even when probes reported findings.

  • Non-zero exit codes indicate a harness error such as invalid config, a failed probe, missing Node.js, uninstalled harness dependencies, missing browser support, or a blocked target.

verify-intent adds two design-intent codes that a consuming project's CI can distinguish:

Exit codeMeaningTypical response
3A blocking expectation resolved failedTreat as intent drift; the surface regressed
4A blocking expectation was never evaluatedTreat as coverage drift; the check did not run

The two are separate because a failed check and an unrun check call for different responses. Reusing one code would let missing coverage read as a regression, or pass silently.

Runtime dependencies

The harness resolves its Node dependencies from a skill-local package under scripts/runtime_a11y (package.json plus committed package-lock.json), pinning [email protected], @axe-core/[email protected], @guidepup/[email protected], and optional real-AT integration through @guidepup/[email protected]. Install the Node dependencies and the separately managed NVDA asset as described under Harness prerequisites. The probes then resolve their dependencies from the local node_modules; the CLI fails fast with an install hint when node_modules is absent, before it probes or starts any server.

Testing

The harness is tested in two tiers. Browserless verdict and pure-helper unit tests run under node --test (repo script test:node) and cover the decision logic in runner/_core.mjs (for example virtualSrNameRoleStatus and liveRegionStatus). Browser smoke tests under tests/runtime_a11y/runner/probe-smoke/ launch system Chrome and drive the real capture path against inline fixtures to prove the DOM-to-verdict pipeline, including nameless controls, live-region firing, forced-color computed styles, and CDP accessibility-node structure. They are named *.smoke.mjs so the default browserless run skips them. PR Validation runs them through the CI-owned npm run ci:test:a11y:smoke entry point. Local reproduction requires system Chrome and the skill-local node_modules.

CI regression gate

Use the ready-to-copy workflow template at references/ci/accessibility-coverage.workflow-template.yml as the documentation-first integration point for a target project. Copy it into the target repository's GitHub Actions workflow directory only after the target project commits an a11y-runtime.config.json and has a build/serve path that the template can invoke. Once authored *.intent.yaml records exist, the template fails closed if the config or current-run results are missing.

The template mirrors the Docusaurus workflow recipe by provisioning system Chrome, setting up Node 24 plus Python and uv, building the target, serving it under a configurable base URL, and running the harness script entrypoint with uv run --project pinned at the vendored skill root. The core high-confidence probes always block: probe-axe, probe-dom-hygiene, probe-broken-links, probe-console-errors, probe-target-size, probe-contrast, and probe-reflow-resize. The interaction-state and announcement probes (probe-keyboard-traversal, probe-widget-keyboard, probe-live-region, probe-aria-tree, probe-virtual-sr, probe-real-sr) are the adequate method for the classes static analysis only informs, and their blocking posture follows the A11Y_TIER dial defined under Gate strictness by assessment tier: basic reports them advisory, standard ratchets (blocking on the surfaces listed in A11Y_RATCHET_SURFACES), and comprehensive blocks them everywhere. The remaining heuristic probes such as use-of-color, hover-focus, link-purpose, name-in-label, and focus-* are surfaced as informational results so they can guide follow-up work without blocking initial adoption. The real-screen-reader probe stays advisory by default unless a project opts into it through configured expected assertions and a supported OS/AT stack; it returns candidate when the platform or AT is unavailable rather than pretending a pass or failure. Decisive coverage of the adaptive-rendering class depends on the target committing the zoom-200, reflow-320, and text-spacing states in its a11y-runtime.config.json.

The parity reference at references/ci/probe-spec-parity.md maps each runtime probe to the closest existing Docusaurus e2e spec and highlights gaps where no equivalent spec currently exists.

The references/ci/act-rule-format.md reference documents how the harness's probes, generated test cases, and EARL results align to the W3C ACT Rules Format (applicability, expectation, passed/failed/inapplicable) so results interoperate with the ACT Rules ecosystem and conformance reporting.

Design intent verification

A consuming project can declare what a surface must convey and have CI check that what shipped still matches. The declaration is a Design Intent Record, human-authored and committed at design-intent/<surface-id>.intent.yaml in that project. Each intent states what the surface must communicate, why, and for whom, and binds every claim to a named check.

The authored-record field contract is in references/design-intent/record-contract.md. Read it when authoring or reviewing a record. This section covers verification.

This skill supplies the step that turns a probe run into a verdict against that declaration.

Invocation
uv run --project <skill-root> <skill-root>/scripts/runtime_a11y/__main__.py verify-intent \
  --record design-intent/<surface-id>.intent.yaml \
  --results results.json
  • --record is the authored record. It is never read for anything but its declarations and never rewritten.

  • --results is a results document from run-all.

  • --out overrides the output path, which defaults to design-intent/.verification/<surface-id>.earl.json beside the record.

How results resolve to outcomes

A result row matches an expectation when its surface, state, emitting probe, and criterion all match what the record declares. Because criterion coverage overlaps across probes, the emitting probe is part of the join.

SituationOutcomeMode
Every matched criterion passedpassedautomatic
Any matched criterion failedfailedautomatic
Evidence gathered but not decisivecantTellautomatic
No result row matched the expectationuntestedautomatic
The expectation uses assert: customuntestedmanual

An expectation is one claim over one or more criteria, so the worst criterion outcome governs. Expectations the run did not cover report untested rather than being omitted, which keeps a missing check visible instead of silently absent.

Expectations whose criteria a probe only informs resolve to cantTell in normal operation. That is expected: the probe gathered evidence without settling the claim.

A custom expectation reports untested whether or not the record carries a human override. The adapter records only observed runtime outcome in the artifact. Human override remains authoritative in the record itself and is not merged into the generated artifact outcome.

Interpretation is two-layered by contract, and the generated artifact now carries both layers on every assertion:

  • observedOutcome is the generated artifact field outcome. An override never replaces it.

  • effectiveOutcome applies fail-safe precedence. Either an observed or human failed outcome yields failed; human passed settles only untested, cantTell, or inapplicable; otherwise the observed outcome remains. This is the value the gate applies.

  • overrideConflict is true only when the observed and authored override outcomes are each passed or failed and differ. An override that settles an untested, cantTell, or inapplicable expectation is the documented use, not a conflict.

A conclusive conflict fails closed. verify-intent writes one Warning: line to stderr for each conflicting assertion, names the intent, expectation, observed outcome, and override outcome, and returns design-intent drift when the conflicting expectation blocks.

The shipped Python verifier rejects duplicate YAML keys, validates the complete authored schema, and enforces semantic checks for dates, filename and runtime-config bindings, duplicate identifiers, method pairing, and probe adequacy before writing an artifact. This repository's PowerShell validator independently enforces the same contract for source and generated-artifact validation.

Exit codes
  • 0 — the artifact was written and no blocking expectation failed.

  • 1 — the record or results document was malformed. Nothing is written.

  • 2 — the record or results document could not be read.

  • 3 — the artifact was written and a blocking expectation failed.

  • 4 — the artifact was written and a blocking expectation was never evaluated.

Exit codes 3 and 4 are enforcement signals. A consuming project's CI step fails its build on either non-zero exit, exactly as it would for any other command. The artifact is still written so the run can publish it. Which expectations block is the record's decision, through each expectation's blocking flag.

Graphics and diagram semantics have no runtime probe. Those expectations use assert: custom and resolve through human review; see the Graphics ARIA and SVG-AAM reference for the boundary between what automation can decide and what it cannot.

Rendering a record for review

A record states what must be true and how it is checked, but carries no implementation or delivery scope. Reviewers who want prose rather than YAML can render one:

uv run --project <skill-root> <skill-root>/scripts/runtime_a11y/__main__.py project-intent \
  --record design-intent/<surface-id>.intent.yaml \
  --out handoff.md

Output is deterministic and renders only what the record already says, adding no analysis and no verification results. Generate it on demand rather than committing it, so it cannot drift from the record it describes. Without --out the Markdown goes to stdout.

Usage notes

  • Treat this skill as the default accessibility entrypoint for planning and review workflows.

  • Resolve framework and phase guidance through this skill instead of duplicating its internal reference paths in agents or instructions.

  • Use the scanner CLI when you need normalized findings from an accessibility scan.

Files

references/frameworks/en-301-549.md


title: EN 301 549 framework reference description: European EN 301 549 V3.2.1 harmonised ICT accessibility standard packaged as an accessibility assessment knowledge base

EN 301 549 framework reference

This skill packages the European EN 301 549 V3.2.1 harmonised standard as an accessibility assessment knowledge base. It covers the nine normative clause groups that bind ICT accessibility under European policy (most prominently the Web Accessibility Directive and the European Accessibility Act): Clause 5 (generic), Clause 6 (two-way voice communication), Clause 7 (ICT with video capabilities), Clause 8 (hardware), Clause 9 (web), Clause 10 (non-web documents), Clause 11 (software), Clause 12 (documentation and support services), and Clause 13 (ICT providing relay or emergency services). Clauses 9, 10, and 11 carry WCAG 2.1 Level A and AA success criteria by reference into web, document, and software contexts respectively, so most rows below carry WCAG cross-references that link into the sibling wcag-22 skill's per-guideline reference files (anchored at #sc-<n>-<m>-<k>).

Source: ETSI / CEN / CENELEC, EN 301 549 V3.2.1, https://www.etsi.org/deliver/etsi_en/301500_301599/301549/. EN 301 549 reference text is reproduced strictly under the paraphrase-only posture defined in accessibility-license-posture.instructions.md; every clause summary in this skill is paraphrased in the authors' own words and cites the ETSI portal as the authoritative source for the normative wording. When that instruction content is unavailable, apply the paraphrase-only posture stated here and do not reproduce normative wording verbatim.

Version Status

ETSI published EN 301 549 V4.1.1 in September 2026. V3.2.1 remains the version cited in the Official Journal of the European Union, so it stays the legal reference for presumption of conformity under the Web Accessibility Directive and the European Accessibility Act until V4.1.1 is cited there. This reference therefore stays on V3.2.1.

When V4.1.1 is cited, the main changes to carry over are:

  • The web, document, and software clauses move from WCAG 2.1 to WCAG 2.2. Six new Level A and AA rows appear in clauses 9 and 10, and five in clause 11, where consistent help is void.

  • The Parsing rows (9.4.1.1, 10.4.1.1, and 11.4.1.1) become void, following its removal from WCAG 2.2.

  • Authoring tool requirements move from 11.8 to a new 5.10, and new clauses add user-preference requirements for web pages (9.7) and non-web documents (10.7).

  • Clause 12 is reorganised, 13.2 becomes void, and new Annexes ZA, ZB, and ZC map requirements to the Web Accessibility Directive, the European Accessibility Act, and other directives.

Sources: ETSI deliverable directory, https://www.etsi.org/deliver/etsi_en/301500_301599/301549/; AccessibleEU, "The European accessibility standard EN 301 549 has been updated", https://accessible-eu-centre.ec.europa.eu/content-corner/news/european-accessibility-standard-en-301-549-has-been-updated-2026-09-07_en.

Clause Roll-up

ClauseTitleApplies toWCAG cross-refReference
5.1Closed functionalityClosed-function ICTn/aclause-group-5.md#clause-5-1
5.1.3.9Private access to personal dataPrivate auditory outputn/aclause-group-5.md#clause-5-1-3-9
5.2Activation of accessibility featuresAll ICTn/aclause-group-5.md#clause-5-2
5.3BiometricsBiometric authenticationn/aclause-group-5.md#clause-5-3
5.4Preservation of accessibility informationAll ICTn/aclause-group-5.md#clause-5-4
5.5Operable partsHardware controlssc-2-5-5clause-group-5.md#clause-5-5
5.6Locking and toggle controlsHardware locksn/aclause-group-5.md#clause-5-6
5.7Key repeatKeyboard inputn/aclause-group-5.md#clause-5-7
5.8Double-strike key acceptanceKeyboard inputn/aclause-group-5.md#clause-5-8
5.9Simultaneous user actionsMulti-touch and chorded inputn/aclause-group-5.md#clause-5-9
6.1Audio bandwidth for speechVoice communicationn/aclause-group-6.md#clause-6-1
6.2Real-time text functionalityVoice ICT with textn/aclause-group-6.md#clause-6-2
6.3Caller identificationVoice communicationn/aclause-group-6.md#clause-6-3
6.4Alternatives to voice-based servicesVoice servicesn/aclause-group-6.md#clause-6-4
6.5Video communicationVideo callssc-1-2-2, sc-1-2-5clause-group-6.md#clause-6-5
6.6Alternatives to video-based servicesVideo answering servicesn/aclause-group-6.md#clause-6-6
7.1Captioning playbackVideo playbacksc-1-2-2, sc-1-2-4clause-group-7.md#clause-7-1
7.2Audio description playbackVideo playbacksc-1-2-3, sc-1-2-5clause-group-7.md#clause-7-2
7.3User controls for captions and audio descriptionVideo player UIsc-1-2-2, sc-1-2-3clause-group-7.md#clause-7-3
8.1GeneralAll hardwaren/aclause-group-8.md#clause-8-1
8.2Hardware products with speech outputSpeech-output hardwaren/aclause-group-8.md#clause-8-2
8.3Stationary ICTKiosks and stationary devicessc-1-4-3clause-group-8.md#clause-8-3
8.4Mechanical hardware (locks and operable parts)Physical controlssc-2-1-1clause-group-8.md#clause-8-4
8.4.3Keys, tickets and fare cardsIdentification median/aclause-group-8.md#clause-8-4-3
8.5Tactile indication of speech modeShared-use ICT with speechn/aclause-group-8.md#clause-8-5
9.1.1.1Non-text contentImages and mediasc-1-1-1clause-group-9.md#clause-9-1-1-1
9.1.2.1Audio-only and video-only (prerecorded)Prerecorded mediasc-1-2-1clause-group-9.md#clause-9-1-2-1
9.1.2.2Captions (prerecorded)Prerecorded videosc-1-2-2clause-group-9.md#clause-9-1-2-2
9.1.2.3Audio description or media alternative (prerecorded)Prerecorded videosc-1-2-3clause-group-9.md#clause-9-1-2-3
9.1.2.4Captions (live)Live videosc-1-2-4clause-group-9.md#clause-9-1-2-4
9.1.2.5Audio description (prerecorded)Prerecorded videosc-1-2-5clause-group-9.md#clause-9-1-2-5
9.1.3.1Info and relationshipsPage structuresc-1-3-1clause-group-9.md#clause-9-1-3-1
9.1.3.2Meaningful sequenceContent ordersc-1-3-2clause-group-9.md#clause-9-1-3-2
9.1.3.3Sensory characteristicsInstructionssc-1-3-3clause-group-9.md#clause-9-1-3-3
9.1.3.4OrientationResponsive pagessc-1-3-4clause-group-9.md#clause-9-1-3-4
9.1.3.5Identify input purposeForm fieldssc-1-3-5clause-group-9.md#clause-9-1-3-5
9.1.4.1Use of colorVisual designsc-1-4-1clause-group-9.md#clause-9-1-4-1
9.1.4.2Audio controlSound and mediasc-1-4-2clause-group-9.md#clause-9-1-4-2
9.1.4.3Contrast (minimum)Text and graphicssc-1-4-3clause-group-9.md#clause-9-1-4-3
9.1.4.4Resize textText sizingsc-1-4-4clause-group-9.md#clause-9-1-4-4
9.1.4.5Images of textText presentationsc-1-4-5clause-group-9.md#clause-9-1-4-5
9.1.4.10ReflowLayout and scrollingsc-1-4-10clause-group-9.md#clause-9-1-4-10
9.1.4.11Non-text contrastUI components and graphicssc-1-4-11clause-group-9.md#clause-9-1-4-11
9.1.4.12Text spacingContent spacingsc-1-4-12clause-group-9.md#clause-9-1-4-12
9.1.4.13Content on hover or focusDynamic contentsc-1-4-13clause-group-9.md#clause-9-1-4-13
9.2.1.1KeyboardInput methodssc-2-1-1clause-group-9.md#clause-9-2-1-1
9.2.1.2No keyboard trapNavigationsc-2-1-2clause-group-9.md#clause-9-2-1-2
9.2.1.4Character key shortcutsKeyboard bindingssc-2-1-4clause-group-9.md#clause-9-2-1-4
9.2.2.1Timing adjustableTimed contentsc-2-2-1clause-group-9.md#clause-9-2-2-1
9.2.2.2Pause, stop, hideAnimated contentsc-2-2-2clause-group-9.md#clause-9-2-2-2
9.2.3.1Three flashes or below thresholdAnimation safetysc-2-3-1clause-group-9.md#clause-9-2-3-1
9.2.4.1Bypass blocksNavigation aidssc-2-4-1clause-group-9.md#clause-9-2-4-1
9.2.4.2Page titledPage identificationsc-2-4-2clause-group-9.md#clause-9-2-4-2
9.2.4.3Focus orderKeyboard navigationsc-2-4-3clause-group-9.md#clause-9-2-4-3
9.2.4.4Link purpose (in context)Link textsc-2-4-4clause-group-9.md#clause-9-2-4-4
9.2.4.5Multiple waysNavigation optionssc-2-4-5clause-group-9.md#clause-9-2-4-5
9.2.4.6Headings and labelsContent structuresc-2-4-6clause-group-9.md#clause-9-2-4-6
9.2.4.7Focus visibleFocus indicationsc-2-4-7clause-group-9.md#clause-9-2-4-7
9.2.5.1Pointer gesturesGesture interactionssc-2-5-1clause-group-9.md#clause-9-2-5-1
9.2.5.2Pointer cancellationPointer activationsc-2-5-2clause-group-9.md#clause-9-2-5-2
9.2.5.3Label in nameAccessible namessc-2-5-3clause-group-9.md#clause-9-2-5-3
9.2.5.4Motion actuationDevice-motion controlssc-2-5-4clause-group-9.md#clause-9-2-5-4
9.3.1.1Language of pagePage languagesc-3-1-1clause-group-9.md#clause-9-3-1-1
9.3.1.2Language of partsContent languagesc-3-1-2clause-group-9.md#clause-9-3-1-2
9.3.2.1On focusInput behaviorsc-3-2-1clause-group-9.md#clause-9-3-2-1
9.3.2.2On inputInput changessc-3-2-2clause-group-9.md#clause-9-3-2-2
9.3.2.3Consistent navigationNavigation patternsc-3-2-3clause-group-9.md#clause-9-3-2-3
9.3.2.4Consistent identificationUI consistencysc-3-2-4clause-group-9.md#clause-9-3-2-4
9.3.3.1Error identificationForm errorssc-3-3-1clause-group-9.md#clause-9-3-3-1
9.3.3.2Labels or instructionsForm guidancesc-3-3-2clause-group-9.md#clause-9-3-3-2
9.3.3.3Error suggestionError recoverysc-3-3-3clause-group-9.md#clause-9-3-3-3
9.3.3.4Error prevention (legal, financial, data)Critical inputsc-3-3-4clause-group-9.md#clause-9-3-3-4
9.4.1.1ParsingCode validitysc-4-1-1clause-group-9.md#clause-9-4-1-1
9.4.1.2Name, role, valueAccessible componentssc-4-1-2clause-group-9.md#clause-9-4-1-2
9.4.1.3Status messagesNotificationssc-4-1-3clause-group-9.md#clause-9-4-1-3
10.1.1.1Non-text contentImages in documentssc-1-1-1clause-group-10.md#clause-10-1-1-1
10.1.2.1Audio-only and video-only (prerecorded)Prerecorded media in documentssc-1-2-1clause-group-10.md#clause-10-1-2-1
10.1.2.2Captions (prerecorded)Video in documentssc-1-2-2clause-group-10.md#clause-10-1-2-2
10.1.2.3Audio description or media alternativeVideo in documentssc-1-2-3clause-group-10.md#clause-10-1-2-3
10.1.3.1Info and relationshipsDocument structuresc-1-3-1clause-group-10.md#clause-10-1-3-1
10.1.3.2Meaningful sequenceContent order in documentssc-1-3-2clause-group-10.md#clause-10-1-3-2
10.1.3.3Sensory characteristicsDocument instructionssc-1-3-3clause-group-10.md#clause-10-1-3-3
10.1.4.1Use of colorVisual design in documentssc-1-4-1clause-group-10.md#clause-10-1-4-1
10.1.4.2Audio controlSound in documentssc-1-4-2clause-group-10.md#clause-10-1-4-2
10.1.4.3Contrast (minimum)Text and graphics in documentssc-1-4-3clause-group-10.md#clause-10-1-4-3
10.2.1.1KeyboardDocument navigationsc-2-1-1clause-group-10.md#clause-10-2-1-1
10.2.1.2No keyboard trapDocument inputsc-2-1-2clause-group-10.md#clause-10-2-1-2
10.2.4.2Document titledDocument identificationsc-2-4-2clause-group-10.md#clause-10-2-4-2
10.2.4.3Focus orderDocument focussc-2-4-3clause-group-10.md#clause-10-2-4-3
10.3.1.1Language of documentDocument languagesc-3-1-1clause-group-10.md#clause-10-3-1-1
11.1.1.1Non-text contentUI graphics and iconssc-1-1-1clause-group-11.md#clause-11-1-1-1
11.1.3.1Info and relationshipsUI structuresc-1-3-1clause-group-11.md#clause-11-1-3-1
11.1.3.2Meaningful sequenceUI component ordersc-1-3-2clause-group-11.md#clause-11-1-3-2
11.1.3.3Sensory characteristicsUI instructionssc-1-3-3clause-group-11.md#clause-11-1-3-3
11.1.4.1Use of colorApp visual designsc-1-4-1clause-group-11.md#clause-11-1-4-1
11.1.4.2Audio controlApp audio outputsc-1-4-2clause-group-11.md#clause-11-1-4-2
11.1.4.3Contrast (minimum)App contrast ratiosc-1-4-3clause-group-11.md#clause-11-1-4-3
11.1.4.11Non-text contrastApp UI componentssc-1-4-11clause-group-11.md#clause-11-1-4-11
11.2.1.1KeyboardApp keyboard accesssc-2-1-1clause-group-11.md#clause-11-2-1-1
11.2.1.2No keyboard trapApp focus managementsc-2-1-2clause-group-11.md#clause-11-2-1-2
11.2.2.1Timing adjustableApp timed interactionssc-2-2-1clause-group-11.md#clause-11-2-2-1
11.2.2.2Pause, stop, hideApp animationssc-2-2-2clause-group-11.md#clause-11-2-2-2
11.2.4.3Focus orderApp focus sequencesc-2-4-3clause-group-11.md#clause-11-2-4-3
11.2.4.6Headings and labelsApp labelssc-2-4-6clause-group-11.md#clause-11-2-4-6
11.2.4.7Focus visibleApp focus indicationsc-2-4-7clause-group-11.md#clause-11-2-4-7
11.3.1.1Language of softwareUI language settingsc-3-1-1clause-group-11.md#clause-11-3-1-1
11.3.2.1On focusApp predictable behaviorsc-3-2-1clause-group-11.md#clause-11-3-2-1
11.3.2.2On inputApp input behaviorsc-3-2-2clause-group-11.md#clause-11-3-2-2
11.3.3.1Error identificationApp error messagessc-3-3-1clause-group-11.md#clause-11-3-3-1
11.3.3.2Labels or instructionsApp guidancesc-3-3-2clause-group-11.md#clause-11-3-3-2
11.4.1.2Name, role, valueApp API accessibilitysc-4-1-2clause-group-11.md#clause-11-4-1-2
11.4.1.3Status messagesApp state changessc-4-1-3clause-group-11.md#clause-11-4-1-3
12.1.1Accessibility and compatibility featuresFeature documentationn/aclause-group-12.md#clause-12-1-1
12.1.2Accessible documentationHelp contentn/aclause-group-12.md#clause-12-1-2
12.2.2Information on accessibility and compatibility featuresSupport informationn/aclause-group-12.md#clause-12-2-2
12.2.3Effective communicationSupport channelsn/aclause-group-12.md#clause-12-2-3
12.2.4Accessible documentationSupport materialsn/aclause-group-12.md#clause-12-2-4
13.1Relay services requirementsRelay service providersn/aclause-group-13.md#clause-13-1
13.2Access to relay servicesRelay service accessn/aclause-group-13.md#clause-13-2
13.3Access to emergency servicesEmergency service accessn/aclause-group-13.md#clause-13-3

How to use this skill

Use the roll-up table to identify the EN 301 549 clauses that apply to a given product context (web, document, software, hardware, voice, video, support, or relay/emergency). Follow each reference link to the per-clause-group file for the paraphrased requirement, applicability scope, WCAG cross-reference, and assessment heuristics. When a row carries a sc-<n>-<m>-<k> cross-reference, consult the sibling wcag-22 skill for the underlying technical detail — Clauses 9, 10, and 11 inherit WCAG 2.1 Level A and AA wholesale into web, non-web document, and software contexts respectively, so most accessibility implementation work happens against the WCAG criterion text with the EN 301 549 clause adding only the regulatory framing.

For the precise normative wording of any clause, consult the official ETSI document at https://www.etsi.org/deliver/etsi_en/301500_301599/301549/. The paraphrased summaries in this skill are not a substitute for the upstream standard when a regulator, procurement authority, or court requires verbatim conformance text.

Clause 5: Generic Requirements

Clause 5 of EN 301 549 V3.2.1 collects ICT-wide generic requirements that apply across product categories (web, software, hardware, voice, video). It covers closed functionality, including private access to personal data spoken by closed-function ICT (5.1.3.9), activation of accessibility features, biometrics, preservation of accessibility information during conversion, operable parts, locking and toggle controls, key repeat and double-strike handling, and simultaneous user actions. These clauses set the baseline that more specialised clauses (6 through 13) build on or refine.

Source: ETSI / CEN / CENELEC, EN 301 549 V3.2.1, Clause 5, https://www.etsi.org/deliver/etsi_en/301500_301599/301549/. Summaries below are paraphrased; consult the official document for normative wording.

clause-5-1

5.1 Closed functionality

Where ICT has closed functionality, meaning users cannot attach or install their own assistive technology, the ICT itself shall provide the accessibility that assistive technology would otherwise supply. Its sub-clauses cover non-visual access (5.1.3), use when text cannot be enlarged (5.1.4), visual output for auditory information (5.1.5), operation without a keyboard interface (5.1.6), and access without speech (5.1.7). Closed functionality shall not require users to attach, connect, or install assistive technology (5.1.2.2).

Applies to: ICT with closed functionality, such as kiosks, ticket machines, payment terminals, and fixed-function devices, which must satisfy accessibility through built-in alternative modes.

WCAG cross-reference: n/a (closed-functionality requirement rather than a WCAG success criterion).

Assessment heuristics:

  • Enumerate every closed-function mode (operation without vision, operation with limited vision, operation without hearing, operation without speech, operation with limited manipulation, operation with limited reach) and verify each is supported.

  • Capture the closed-functionality test plan as part of the product accessibility conformance report.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-5-1-3-9

5.1.3.9 Private access to personal data

Where closed functionality provides auditory output as non-visual access, and that output contains data the applicable privacy policy treats as private, the output shall go only through a private listening mechanism that can be connected without vision, such as a headphone jack, or through another mechanism the user explicitly chooses. The requirement does not apply when no privacy policy defines the data as private.

Applies to: Closed-function ICT that speaks private data, especially public-use ICT such as kiosks, ATMs, and ticket machines.

WCAG cross-reference: n/a.

Assessment heuristics:

  • Confirm a private audio channel (headphone jack, Bluetooth pairing) is offered alongside speaker-based screen reader output.

  • Where the user may choose non-private output (for example, at home), confirm the ICT warns about the privacy implications before switching.

  • Document the privacy preservation approach as part of the conformance report.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-5-2

5.2 Activation of accessibility features

Where the ICT has documented accessibility features, those features shall be activatable without requiring the user to first use a feature that is itself inaccessible.

Applies to: All ICT that ships with accessibility settings (high-contrast, screen-reader mode, sticky keys, captioning toggle, magnification).

WCAG cross-reference: n/a.

Assessment heuristics:

  • Walk through first-run setup with each accessibility persona and verify the user can turn on the relevant feature without dependence on another inaccessible feature.

  • Provide at least one always-available activation surface (hardware button, voice command, OS shortcut) for the most critical features.

  • Document the activation paths in the support documentation referenced by Clause 12.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-5-3

5.3 Biometrics

Where biometric authentication is offered, the ICT shall not rely on a single biological characteristic as the only means of authentication; an accessible non-biometric alternative or a second biometric modality shall be provided so users who cannot present that characteristic can still authenticate.

Applies to: Devices and services that offer fingerprint, face, iris, voice, or other biometric authentication.

WCAG cross-reference: n/a.

Assessment heuristics:

  • Verify that at least one alternative authentication path (PIN, hardware token, alternative biometric) is offered alongside the primary biometric.

  • Confirm that the alternative is described in setup flows and is reachable without first completing biometric enrolment.

  • Test the fallback flow with users who have conditions affecting the relevant biometric (low-vision face capture, amputation, voice impairment).

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-5-4

5.4 Preservation of accessibility information during conversion

When ICT converts information from one form, format, or medium to another (for example, exporting a document, re-encoding a video, copying captions), it shall preserve the accessibility metadata (alternative text, captions, semantic structure, language tags) unless the target format cannot represent it.

Applies to: Conversion, export, transcoding, and synchronisation tools across document, media, and communication ICT.

WCAG cross-reference: n/a.

Assessment heuristics:

  • For each export path, diff the source accessibility metadata against the exported artifact and confirm parity (or document the unavoidable loss in user-visible release notes).

  • Cover captions, audio descriptions, alt text, heading structure, table semantics, and language tags in the regression test plan.

  • Confirm that lossy conversions issue a clear warning at the time of conversion.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-5-5

5.5 Operable parts

Operable parts (buttons, switches, dials, latches) shall be discernible by touch without activation, shall not require tight grasp, pinch, or twist of the wrist, and shall be operable with one hand and with a force of no more than 22.2 N.

Applies to: Hardware ICT with physical controls (kiosks, payment terminals, ticket machines, telephones).

WCAG cross-reference: sc-2-5-5.

Assessment heuristics:

  • Confirm tactile discernibility of each operable part by haptic inspection (raised symbols, distinct shape, separation gaps).

  • Measure activation force with a calibrated gauge against the 22.2 N ceiling.

  • Verify single-hand operation for the full task path (insert card → enter PIN → confirm → take receipt).

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-5-6

5.6 Locking or toggle controls

Locking and toggle controls (Caps Lock, Num Lock, Scroll Lock and equivalents on hardware) shall have a discernible non-visual indicator (audible tone, tactile state, or both) so blind users can determine the control state.

Applies to: Keyboards, hardware keypads, and physical toggle switches.

WCAG cross-reference: n/a.

Assessment heuristics:

  • Verify each toggle exposes either an audible state cue or a tactile-state cue (raised LED with tactile cap, mechanical detent).

  • For software-controlled hardware (laptop Caps Lock LEDs), confirm the state can also be read through the platform accessibility API.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-5-7

5.7 Key repeat

Where ICT keyboards offer key-repeat behaviour, users shall be able to disable the feature or adjust both the delay before repeat and the repeat rate.

Applies to: Keyboards, on-screen keyboards, and other key-based input methods.

WCAG cross-reference: n/a.

Assessment heuristics:

  • Confirm settings expose a "disable repeat" option and adjustable delay/rate sliders.

  • Verify the settings persist across sessions and across user accounts where applicable.

  • Test with users who have tremor or limited dexterity to confirm the configuration meaningfully reduces accidental repeats.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-5-8

5.8 Double-strike key acceptance

Where ICT accepts keyboard input, users shall be able to configure a minimum interval between presses of the same key before a second activation is registered, so that involuntary double-strikes do not produce duplicate input.

Applies to: Keyboards, on-screen keyboards, and key-based input modes on operating systems.

WCAG cross-reference: n/a.

Assessment heuristics:

  • Confirm the OS or application provides a "filter keys" or "bounce keys" style configuration with adjustable threshold.

  • Test that the configured threshold meaningfully suppresses accidental double-strikes without introducing perceived input lag.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-5-9

5.9 Simultaneous user actions

Operation of the ICT shall not require simultaneous actions (chorded key combinations, multi-touch gestures, simultaneous press-and-hold) unless an equivalent single-action alternative is provided.

Applies to: All input surfaces including hardware keys, touch screens, and pointer gestures.

WCAG cross-reference: n/a (related to Clause 9.2.1 keyboard requirements).

Assessment heuristics:

  • Inventory every gesture or key combination that requires simultaneity (Ctrl+Alt+Del, two-finger pinch, two-button hold) and confirm an equivalent sequential path exists.

  • Verify the sequential alternative is documented in the help content.

  • Test with single-hand and switch-access users.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

Clause 6: ICT with Two-Way Voice Communication

Clause 6 of EN 301 549 V3.2.1 covers accessibility requirements that apply when ICT enables real-time, bidirectional voice conversation between two or more users. Its sub-clauses address audio bandwidth for intelligible speech, real-time text (RTT) as a parallel channel to voice, caller identification across modalities, accessible alternatives to voice-only services, the picture quality of video used to support sign-language communication, and alternatives to the automated answering and response features of video-based services. Access to emergency services is covered in Clause 13. These requirements build on the generic provisions in Clause 5 and apply to voice telephony, internet calling, unified-communications clients, and video-conferencing endpoints.

Source: ETSI / CEN / CENELEC, EN 301 549 V3.2.1, Clause 6, https://www.etsi.org/deliver/etsi_en/301500_301599/301549/. Summaries below are paraphrased; consult the official document for normative wording.

clause-6-1

6.1 Audio bandwidth for speech

Where ICT provides two-way voice communication, the audio path shall carry a frequency range wide enough to preserve the intelligibility cues of human speech, including the consonant frequencies that users with hearing loss depend on. Narrowband telephony alone is not sufficient; the clause expects wideband or super-wideband speech coding when the underlying network and endpoints support it.

Applies to: Voice communication endpoints and services, including IP telephony, mobile clients, unified-communications applications, and video-conferencing tools whose voice path is used as a substitute for in-person speech.

WCAG cross-reference: n/a (audio-channel quality requirement with no WCAG equivalent).

Assessment heuristics:

  • Measure the end-to-end frequency response of the voice path and confirm it extends at least into the wideband range expected by the negotiated codec.

  • Verify that wideband-capable codecs (for example G.722, Opus, EVS) are advertised and negotiated whenever both endpoints support them rather than silently downgrading to narrowband.

  • Test intelligibility with hard-of-hearing users on representative network conditions to confirm consonant clarity in noisy environments.

  • Document any conditions (network fallback, gateway transcoding) that force a narrowband downgrade and surface them in the conformance report.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/ (Clause 6.1).

clause-6-2

6.2 Real-time text functionality

Where ICT supports real-time text alongside voice, characters shall be transmitted as soon as they are entered so that the conversation flows in step with speech rather than after a send action. RTT shall be available in parallel with the voice channel so that a user can switch between or combine speaking and typing within the same call, and the implementation shall align with the recognised RTT transport profiles (for example RFC 4103 for SIP-based calls).

Applies to: Voice ICT that offers a text channel intended to complement or substitute for speech during a call, including softphones, mobile dialer apps, unified-communications clients, and gateways that bridge voice and text users.

WCAG cross-reference: n/a (real-time communication modality with no direct WCAG SC mapping).

Assessment heuristics:

  • Confirm that text is transmitted character-by-character (or in small bursts) with sub-second latency end-to-end rather than buffered until the user presses send.

  • Verify that voice and RTT can be active simultaneously within the same session and that switching between them does not tear down the call.

  • Test interoperability with at least one independent RTT-capable endpoint to confirm conformance with the negotiated transport profile.

  • Confirm that incoming RTT is presented visibly while a call is ringing, in progress, and being torn down.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/ (Clause 6.2).

clause-6-3

6.3 Caller identification

Where ICT presents caller identification (incoming-call display, in-call participant list, missed-call log), the information shall be available in both visual and auditory forms so that users who cannot rely on a screen and users who cannot rely on audio cues both receive it. The same applies to other call-status cues that the system signals through caller-ID metadata, such as withheld-number indications or organisation labels.

Applies to: Voice communication endpoints and services that display or announce caller-identity information for incoming, in-progress, or historical calls.

WCAG cross-reference: n/a (multi-modal output requirement bound to the voice-ICT context).

Assessment heuristics:

  • Verify that incoming caller-ID information can be rendered as on-screen text and as spoken or otherwise audible output, with the user able to enable either channel.

  • Confirm that the in-call participant list and missed-call log expose the same identity information through the platform accessibility API so screen readers can announce it.

  • Test the auditory presentation in realistic ambient conditions to confirm it is loud and clear enough to be perceived during a typical call setup.

  • Confirm that withheld, blocked, or unknown-caller states are surfaced through the same dual-channel path as identified callers.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/ (Clause 6.3).

clause-6-4

6.4 Alternatives to voice-based services

Where a service depends on a voice interaction to be completed (for example interactive voice response menus, voicemail retrieval, voice-only support hotlines), the provider shall offer an equivalent non-voice channel so that users who cannot speak or hear can reach the same outcome. The alternative channel shall provide comparable functionality and timeliness rather than being limited to a deferred email response.

Applies to: Voice-driven services exposed to end users, including IVR systems, contact centres, voicemail, and any service whose primary completion path is a spoken interaction.

WCAG cross-reference: n/a (service-design requirement rather than an interface-level WCAG SC).

Assessment heuristics:

  • Inventory every user-facing service that uses voice as the primary completion path and confirm at least one functionally equivalent non-voice channel exists (RTT, text chat, web form with real-time agent, video relay).

  • Verify that the alternative channel can complete the same set of tasks (menu navigation, authentication, account changes, escalation) as the voice path.

  • Confirm that response timeliness on the alternative channel is comparable to the voice channel during the same operating hours.

  • Document the alternative channel in the support documentation referenced by Clause 12 so users can discover it without already using the inaccessible voice path.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/ (Clause 6.4).

clause-6-5

6.5 Video communication

Where ICT supports real-time video as part of a two-way voice call (for example to enable sign-language conversation or lip-reading), the video stream shall meet the resolution, frame rate, dynamic range, and audio-video synchronisation needed for those visual cues to be perceived. The clause is concerned with the picture quality of the live video itself rather than with prerecorded captions or descriptions, but it shares failure modes with the WCAG synchronised-media criteria, which is why the roll-up cross-references the prerecorded-captions and audio-description success criteria as related context.

Applies to: Video calls within voice-communication ICT, including video-relay services, video-conferencing endpoints used for accessibility purposes, and any product that offers a video lane alongside voice.

WCAG cross-reference: sc-1-2-2, sc-1-2-5.

Assessment heuristics:

  • Confirm the negotiated video profile delivers a frame rate and resolution sufficient for sign-language perception (commonly cited as at least 20 frames per second at a resolution that preserves hand and facial detail).

  • Measure end-to-end audio-video synchronisation and verify lip-reading remains viable within the tolerance the codec advertises.

  • Test the call under typical network conditions (constrained uplink, packet loss) and confirm the system degrades gracefully rather than dropping frame rate below the sign-language threshold without warning.

  • Verify the user can choose to enable the video lane without losing the voice or RTT channels in the same call.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/ (Clause 6.5).

clause-6-6

6.6 Alternatives to video-based services

Where ICT provides real-time video-based communication together with answering machine, auto attendant, or interactive response facilities, it should let users reach the information and complete the tasks those facilities offer without hearing (for audible information), without speech (for spoken commands), and without vision (for visual information). This clause is a recommendation ("should"), not a requirement. Real-time captions or RTT handling are examples of solutions that can meet it.

Applies to: Video calling and video contact-centre ICT that includes video voicemail, auto attendants, or interactive video response menus.

WCAG cross-reference: n/a (communication-service recommendation with no WCAG equivalent).

Assessment heuristics:

  • Inventory the answering, auto-attendant, and interactive response features available in video calls.

  • Confirm audible prompts are also presented visually (captions or text), spoken commands have a non-speech alternative (keypad, RTT, on-screen selection), and visual prompts have a non-visual alternative.

  • Walk each automated video flow without hearing, without speech, and without vision, and record any task that cannot be completed.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/ (Clause 6.6).

Clause 7: ICT with Video

Clause 7 of EN 301 549 V3.2.1 covers accessibility requirements for ICT that plays back video content with synchronised audio. It focuses on the playback path: how captions render, how audio description tracks are presented alongside the programme audio, and how the player exposes user controls for those alternative tracks. Authoring of captions and audio description for the underlying media falls under Clause 9 (web) and Clause 10 (non-web documents); Clause 7 governs the playback surface that exposes those tracks to the viewer.

Source: ETSI / CEN / CENELEC, EN 301 549 V3.2.1, Clause 7, https://www.etsi.org/deliver/etsi_en/301500_301599/301549/. Summaries below are paraphrased; consult the official document for normative wording.

clause-7-1

7.1 Captioning playback

ICT that plays video with synchronised audio shall play back captions when the source media carries a caption track, render them synchronised with the corresponding audio, and preserve the visual styling and positioning that the caption author specified. The playback surface shall not strip, re-time, or visually obscure caption text during normal playback.

Applies to: Video playback.

WCAG cross-reference: sc-1-2-2, sc-1-2-4.

Assessment heuristics:

  • Play a sample asset that carries a caption track and confirm captions render automatically when the user has captions enabled.

  • Measure caption-to-audio synchronisation under normal and seek-resumed playback; flag drift greater than a few hundred milliseconds.

  • Verify that author-specified caption positioning and styling (line breaks, speaker labels, italics) survive the playback pipeline.

  • Confirm captions do not get cropped, overlapped by player chrome, or hidden behind on-screen controls.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/ (Clause 7.1).

clause-7-2

7.2 Audio description playback

ICT that plays video with synchronised audio shall play back an audio description track when the source media provides one, mix it cleanly with the programme audio without clipping or muting the original soundtrack outside the described intervals, and keep the description timing aligned with the visual content it describes.

Applies to: Video playback.

WCAG cross-reference: sc-1-2-3, sc-1-2-5.

Assessment heuristics:

  • Play media that carries both an audio description track and a standard track and confirm the player can select and mix the description channel.

  • Confirm description narration falls in the intended pauses and does not collide with programme dialogue.

  • Verify that selecting audio description does not silence or unduly attenuate the original programme audio outside the described intervals.

  • Test that the description track remains available on platform-specific output paths (HDMI, Bluetooth, AirPlay) and not just on the local speaker.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/ (Clause 7.2).

clause-7-3

7.3 User controls for captions and audio description

The video player UI shall expose discoverable controls that let the user turn captions and audio description on and off independently of one another, and those controls shall be as easy to reach as the player's primary playback controls (play, pause, volume). User preference for each track type shall persist so that the next time the user opens compatible media the same selection applies.

Applies to: Video player UI.

WCAG cross-reference: sc-1-2-2, sc-1-2-3.

Assessment heuristics:

  • Open the player UI and confirm the caption toggle and the audio description toggle are reachable from the same surface and at the same depth as the play/pause and volume controls.

  • Verify that the captions toggle and the audio description toggle operate independently — neither requires the other to be enabled or disabled.

  • Toggle each control, close the player, reopen with a different compatible asset, and confirm the previous selection persists.

  • Confirm the controls expose accessible names through the platform accessibility API so that screen readers and switch-access users can operate them.

  • Where caption styling (font size, colour, background opacity) is configurable, confirm the styling controls are reachable from the same player UI surface and that the chosen styling persists across sessions.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/ (Clause 7.3).

Clause 8: Hardware

Clause 8 of EN 301 549 V3.2.1 collects accessibility requirements that apply to hardware ICT (kiosks, payment terminals, ticket machines, telephones, set-top boxes, peripheral devices). It builds on the generic operable-parts and locking rules from Clause 5 and adds hardware-specific requirements for spoken output, stationary public-use ICT, mechanically operable parts including keys, tickets, and fare cards whose orientation must be discernible by touch (8.4.3), and tactile indication of how to start speech output on shared-use ICT (8.5).

Source: ETSI / CEN / CENELEC, EN 301 549 V3.2.1, Clause 8, https://www.etsi.org/deliver/etsi_en/301500_301599/301549/. Summaries below are paraphrased; consult the official document for normative wording.

clause-8-1

8.1 General

Hardware ICT shall meet the accessibility requirements that follow in Clause 8, in addition to the generic requirements in Clause 5 that apply whenever the hardware exposes operable parts, locking or toggle controls, key input, multi-action input, or accessibility activation. Clause 8 narrows the generic rules to physical product form factors and adds requirements that only make sense for hardware.

Applies to: All hardware ICT products and the hardware aspects of mixed hardware/software systems.

Assessment heuristics:

  • Maintain a single conformance matrix that covers both the relevant Clause 5 rows and the Clause 8 rows for the hardware under test, so reviewers can see at a glance which generic and hardware-specific rules apply.

  • Identify which hardware mode each Clause 8 subsection targets (speech output, stationary public ICT, mechanical controls, identification cards) and confirm the matrix marks each as "applicable", "not applicable with rationale", or "non-conformant with mitigation".

  • Document the relationship between Clause 5 operable-parts findings and Clause 8.4 mechanical hardware findings so the same physical control is not double-counted or split between reports.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-8-2

8.2 Hardware products with speech output

Where hardware provides built-in speech output as part of an accessibility mode (for example, a self-service kiosk that speaks the on-screen content), the speech shall be in the same language as the visible content where that language is supported, the user shall be able to adjust the volume independently of any other audio, and a private listening option (such as a standard headphone jack) shall be provided so confidential content is not exposed to bystanders.

Applies to: Hardware ICT with built-in speech output, including ATMs, ticket machines, voting machines, and information kiosks.

Assessment heuristics:

  • Verify the speech output language tracks the visible content language and that switching the on-screen language also switches the speech voice or pronunciation.

  • Confirm an independent volume control for the speech channel, with at least one increment loud enough for a user with mild hearing loss in a noisy public environment.

  • Confirm a standard headphone jack (or equivalent private listening surface) is present, reachable from the operating position, and routes the speech output without exposing it on the speaker.

  • Test that the private listening surface mutes the public speaker automatically when the jack is engaged.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-8-3

8.3 Stationary ICT

Stationary ICT installed in public spaces (kiosks, ATMs, ticket machines, information terminals) shall be positioned and dimensioned so that users in wheelchairs and users of short stature can reach all operable parts, view all displays, and complete every essential task without assistance. Where the device displays text or symbols, the visual presentation shall meet the contrast requirements that apply to the relevant viewing distance.

Applies to: Kiosks and other stationary devices installed for public use.

WCAG cross-reference: sc-1-4-3.

Assessment heuristics:

  • Verify that the highest operable part is within the forward or side reach range specified for seated users, and that the lowest operable part is reachable without forcing the user to crouch.

  • Confirm clear floor space in front of the device for a wheelchair approach (frontal or parallel) and that the approach is not blocked by a kick plate, fixed bollard, or queue rail.

  • Measure the contrast ratio of on-screen text and critical status indicators at the typical viewing distance and angle for a seated user.

  • Confirm displays are tilted or mounted so glare from overhead lighting does not obscure content for a seated viewer.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-8-4

8.4 Mechanical hardware (locks and operable parts)

Mechanical hardware such as locks, latches, hinges, paper trays, card slots, and removable panels shall be operable without requiring tight grasping, pinching, or twisting of the wrist, shall be operable with one hand, and shall not require simultaneous activation of multiple operable parts. The activation force for any mechanical operable part shall stay within the ceiling defined for generic operable parts in Clause 5.5.

Applies to: Physical controls and mechanical operable parts on hardware ICT, including service-door locks, paper jam access panels, and consumable replacement mechanisms that an end user is expected to operate.

WCAG cross-reference: sc-2-1-1.

Assessment heuristics:

  • Inspect each user-facing mechanical control and confirm it can be operated with a closed fist or single finger (no pinch, twist, or tight grasp required).

  • Measure activation force against the Clause 5.5 ceiling and document any mechanism that requires more than the permitted force.

  • Verify single-hand operation for each consumable replacement path (paper roll, card stack, receipt drawer) end to end.

  • Confirm no maintenance task expected of the end user requires simultaneous activation of two separated controls.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-8-4-3

8.4.3 Keys, tickets and fare cards

Where ICT provides keys, tickets, or fare cards whose orientation matters for later use, their correct orientation shall be discernible by touch.

Applies to: Identification media that the user must insert, swipe, or tap with a specific orientation, including transit fare cards, hotel keycards, parking tickets, and access badges.

Assessment heuristics:

  • Inspect each card design for a tactile orientation feature that is distinguishable from the card edge by touch alone.

  • Confirm the tactile feature unambiguously indicates the correct insertion or tap orientation for every reader the card is used with.

  • Test card orientation discovery with users who are blind or have low vision and confirm they can insert the card on the first attempt without sighted assistance.

  • For systems that issue cards on demand (ticket machine), confirm the issued card preserves the tactile orientation feature regardless of which print path generated it.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-8-5

8.5 Tactile indication of speech mode

Where ICT is designed for shared use and speech output is available, it shall provide a tactile indication of how to start the speech mode of operation, for example Braille instructions next to the control that activates speech.

Applies to: Shared-use ICT with speech output, such as kiosks, ticket machines, ATMs, and information points.

WCAG cross-reference: n/a (hardware requirement with no WCAG equivalent).

Assessment heuristics:

  • Locate the control or action that starts speech output and confirm a tactile indication identifies it.

  • Confirm a blind user can find the indication and start speech mode without sighted assistance.

  • Where Braille is used, check that it is legible and describes the action accurately.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

Clause 9: Web

Clause 9 of EN 301 549 V3.2.1 adopts WCAG 2.1 Level A and AA success criteria wholesale and reapplies them to web pages, web applications, and web content delivered through user agents. Each sub-clause is the EN 301 549 web-context obligation that procurement and conformance reports map to: the requirement is the WCAG criterion, and the assessment work is to demonstrate, document, and evidence that the website meets it. Sub-clauses are organised by WCAG principle (1 perceivable, 2 operable, 3 understandable, 4 robust) and inherit the criterion numbering directly, so 9.X.Y.Z always corresponds to WCAG X.Y.Z.

Source: ETSI / CEN / CENELEC, EN 301 549 V3.2.1, Clause 9, https://www.etsi.org/deliver/etsi_en/301500_301599/301549/. Summaries below are paraphrased; consult the official document for normative wording and the linked WCAG 2.2 reference files for criterion-level technical detail.

clause-9-1-1-1

9.1.1.1 Non-text content

Every non-text element on the page (images, icons, charts, image-based form controls, decorative ornaments, CAPTCHA, sensory content) shall expose a programmatic text alternative that conveys equivalent information or function. Decorative-only graphics shall be marked so assistive technology can skip them.

Applies to: Images and media.

WCAG cross-reference: sc-1-1-1.

Assessment heuristics:

  • Run an automated scan that flags every <img>, <svg>, <canvas>, CSS background-as-content, and image-based control that lacks an accessible name, then triage manually.

  • Confirm decorative graphics use alt="", role="presentation", or aria-hidden="true" so screen readers skip them rather than announce filenames.

  • Capture the alt-text policy and the list of CAPTCHA/sensory alternatives in the accessibility conformance report so procurers can verify coverage.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-1-2-1

9.1.2.1 Audio-only and video-only (prerecorded)

Prerecorded audio-only content shall have an equivalent text transcript, and prerecorded video-only (silent) content shall have either a text description or an equivalent audio track. The alternative shall be reachable from the same context as the media.

Applies to: Prerecorded media.

WCAG cross-reference: sc-1-2-1.

Assessment heuristics:

  • Inventory every audio-only and silent-video asset and verify each links to a transcript or descriptive alternative in the same page region.

  • Confirm transcripts capture speaker turns, non-speech audio that carries meaning, and time markers where helpful.

  • Verify alternatives are exposed as page content (not stranded behind a "download" link the screen reader cannot locate without instructions).

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-1-2-2

9.1.2.2 Captions (prerecorded)

Prerecorded video with synchronized audio shall include captions for all dialogue and meaningful non-speech audio. Captions shall be synchronized with the soundtrack and shall identify speakers when ambiguity would otherwise arise.

Applies to: Prerecorded video.

WCAG cross-reference: sc-1-2-2.

Assessment heuristics:

  • Confirm every prerecorded video bundles a caption track (WebVTT, TTML, or open captions burned into the video) and that the player exposes a caption toggle.

  • Spot-check caption timing, accuracy, and speaker identification against the audio.

  • Reject auto-generated captions that fall below the procurement quality bar (typical thresholds: >95% word accuracy, <3 second latency, correct punctuation and speaker labels).

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-1-2-3

9.1.2.3 Audio description or media alternative (prerecorded)

Prerecorded video with synchronized audio shall provide either an audio description of essential visual content or a full text media alternative covering both the audio and visual tracks. Audio descriptions shall be inserted during natural pauses in dialogue.

Applies to: Prerecorded video.

WCAG cross-reference: sc-1-2-3.

Assessment heuristics:

  • For each prerecorded video, confirm either a descriptive audio track or a full media-alternative document is available and discoverable from the video page.

  • Verify the media alternative covers setting, on-screen text, actions, and speaker cues sufficient for a non-sighted user to follow the narrative.

  • Confirm the alternative is rendered in accessible HTML or a tagged document rather than only in an image or scanned PDF.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-1-2-4

9.1.2.4 Captions (live)

Live video that carries synchronized audio shall be accompanied by live captions covering all spoken content as it is delivered.

Applies to: Live video.

WCAG cross-reference: sc-1-2-4.

Assessment heuristics:

  • Confirm the live-streaming platform supports a live-caption track and that the production workflow assigns either a stenographer, re-speaker, or vetted automated service.

  • Measure end-to-end caption latency against the procurement target (typically under 3 seconds) and accuracy during fast or technical speech.

  • Verify the caption display does not occlude key visual content and remains visible on small viewports.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-1-2-5

9.1.2.5 Audio description (prerecorded)

Prerecorded video with synchronized audio shall provide an audio description track that narrates essential visual information not conveyed through the existing soundtrack.

Applies to: Prerecorded video.

WCAG cross-reference: sc-1-2-5.

Assessment heuristics:

  • Verify each prerecorded video offers either an alternate "with audio description" version or an in-player audio-description toggle.

  • Confirm descriptions cover essential setting, character actions, on-screen text, and visual cues, and that they fit within natural dialogue pauses without extending the video timeline.

  • Capture the audio-description coverage policy (in-house, vendor, automated) in the conformance report.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-1-3-1

9.1.3.1 Info and relationships

Information, structure, and relationships conveyed visually (headings, lists, tables, form labels, regions, emphasis) shall also be exposed in the page's markup so assistive technology can present the same relationships. Use semantic HTML elements or correct ARIA roles rather than styling alone.

Applies to: Page structure.

WCAG cross-reference: sc-1-3-1.

Assessment heuristics:

  • Validate the page outline (headings, landmarks, lists, tables, form groupings) against the visual design and reject any element that conveys structure only through styling.

  • Confirm data tables identify header cells; complex tables additionally use scope, headers, or id associations.

  • Verify form fields use <label> (or aria-labelledby/aria-label) so screen readers announce field purpose without relying on placeholder text.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-1-3-2

9.1.3.2 Meaningful sequence

Where the sequence in which content is presented affects meaning, the reading order in the DOM (or the source order used by assistive technology) shall match the intended sequence.

Applies to: Content order.

WCAG cross-reference: sc-1-3-2.

Assessment heuristics:

  • Disable CSS and confirm the unstyled page still reads in a logical order that preserves meaning.

  • Inspect any layout that relies on order, float, position: absolute, or grid-area reordering and confirm the DOM order matches the intended reading order.

  • Verify screen-reader reading order with NVDA, VoiceOver, and JAWS on representative templates.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-1-3-3

9.1.3.3 Sensory characteristics

Instructions for understanding and operating content shall not rely solely on sensory characteristics such as shape, colour, size, visual location, orientation, or sound.

Applies to: Instructions.

WCAG cross-reference: sc-1-3-3.

Assessment heuristics:

  • Search content for purely sensory references ("click the round button", "the menu on the right", "the green item", "after the beep") and require a non-sensory companion cue (label, name, position in list).

  • Verify form-error guidance references field names or descriptive text rather than colour or shape only.

  • Confirm onboarding and tutorial copy survives a screen-reader read-through without losing instructional meaning.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-1-3-4

9.1.3.4 Orientation

Content shall not restrict its view and operation to a single display orientation (portrait or landscape) unless a specific orientation is essential.

Applies to: Responsive pages.

WCAG cross-reference: sc-1-3-4.

Assessment heuristics:

  • Rotate the device or emulator through portrait and landscape on representative pages and confirm the page remains usable in both orientations.

  • Inspect the markup for screen.orientation.lock() calls or CSS that hides content based on orientation and require a documented essential-use justification.

  • Confirm responsive breakpoints accommodate both orientations without requiring horizontal scrolling beyond the reflow allowance.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-1-3-5

9.1.3.5 Identify input purpose

Form fields that collect information about the user shall expose the field's purpose programmatically (typically through HTML autocomplete tokens) so user agents and assistive technology can pre-fill or relabel them.

Applies to: Form fields.

WCAG cross-reference: sc-1-3-5.

Assessment heuristics:

  • Inventory all fields covered by WCAG's user-information list (name, email, address, phone, payment, etc.) and verify each carries the correct autocomplete token.

  • Confirm autofill works with browser and password-manager extensions on representative forms.

  • Reject fields that disable autocomplete without a documented security justification, since this directly breaks the criterion.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-1-4-1

9.1.4.1 Use of color

Colour shall not be the sole visual means of conveying information, indicating an action, prompting a response, or distinguishing a visual element.

Applies to: Visual design.

WCAG cross-reference: sc-1-4-1.

Assessment heuristics:

  • Render representative screens in greyscale and confirm every status, link, validation cue, chart series, and required-field indicator remains distinguishable.

  • Verify links inside body copy carry a non-colour distinguishing affordance (underline, weight, icon) in addition to colour.

  • Confirm charts and data visualisations layer pattern, label, or shape on top of colour encoding.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-1-4-2

9.1.4.2 Audio control

Audio that plays automatically for more than three seconds shall provide a user-accessible mechanism to pause, stop, or independently control its volume, separate from the overall system volume.

Applies to: Sound and media.

WCAG cross-reference: sc-1-4-2.

Assessment heuristics:

  • Inventory every page that emits audio on load and confirm either the audio is under three seconds, muted by default, or paired with a visible pause/stop control.

  • Verify the control is reachable by keyboard and announced by screen readers.

  • Confirm the volume control is independent of system volume so screen-reader users can lower the page audio without losing the assistive-technology track.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-1-4-3

9.1.4.3 Contrast (minimum)

Visual presentation of text and images of text shall meet a contrast ratio of at least 4.5:1 against the background, or 3:1 for large-scale text (typically 18pt regular or 14pt bold).

Applies to: Text and graphics.

WCAG cross-reference: sc-1-4-3.

Assessment heuristics:

  • Run a contrast analyser across the design system tokens and every text-on-image, text-on-gradient, and disabled-state combination.

  • Confirm hover, focus, and active states (and any seasonal or branded theming) still pass the threshold rather than only the default state.

  • Capture the contrast-token matrix in the conformance report so future theme changes can be regression-tested.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-1-4-4

9.1.4.4 Resize text

Text shall be resizable up to 200% without loss of content or functionality and without requiring assistive technology (other than browser zoom).

Applies to: Text sizing.

WCAG cross-reference: sc-1-4-4.

Assessment heuristics:

  • Zoom representative pages to 200% in the browser and confirm no text is clipped, overlapped, or pushed off-screen and that no interactive control becomes unreachable.

  • Verify the design uses relative units (rem, em, %) rather than fixed px values for body text and form controls.

  • Confirm components such as modals, sticky headers, and toasts continue to behave at 200% zoom.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-1-4-5

9.1.4.5 Images of text

Where text can be presented as text, images of text shall be avoided. Logos and decorative essential text are the only permitted exceptions.

Applies to: Text presentation.

WCAG cross-reference: sc-1-4-5.

Assessment heuristics:

  • Scan the page for <img> elements that contain rendered text (banners, hero graphics, infographic labels) and replace with real text wherever the visual treatment does not require an image.

  • Confirm any remaining text-in-image carries an alt attribute that exactly matches the depicted text.

  • Verify localisation pipelines produce text rather than re-rendered image variants per locale.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-1-4-10

9.1.4.10 Reflow

Content shall be presentable without loss of information or functionality and without requiring scrolling in two dimensions at a viewport width equivalent to 320 CSS pixels (or height of 256 CSS pixels for content that scrolls horizontally as intended).

Applies to: Layout and scrolling.

WCAG cross-reference: sc-1-4-10.

Assessment heuristics:

  • Resize the browser to a 320 CSS-pixel-wide viewport (or zoom to 400% on a 1280-pixel display) and confirm the page reflows to a single column without horizontal scrolling.

  • Identify any element that requires two-dimensional scrolling (data tables, charts, code blocks, maps) and confirm it qualifies under the "essential by usage" exception.

  • Verify fixed headers, footers, and side panels do not collapse content area below a usable size at the reflow viewport.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-1-4-11

9.1.4.11 Non-text contrast

Visual presentation of user-interface components (boundaries, focus indicators, states) and graphical objects required to understand content shall have a contrast ratio of at least 3:1 against adjacent colours.

Applies to: UI components and graphics.

WCAG cross-reference: sc-1-4-11.

Assessment heuristics:

  • Audit the design system for control boundaries (buttons, inputs, checkboxes, focus rings) and confirm each state meets the 3:1 ratio.

  • Confirm meaningful chart, infographic, and icon strokes pass the threshold against their background.

  • Reject low-contrast "ghost" buttons and decorative focus indicators that fall below 3:1.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-1-4-12

9.1.4.12 Text spacing

When users override text spacing (line height to 1.5×, paragraph spacing to 2×, letter spacing to 0.12×, word spacing to 0.16× the font size), no content shall be lost and no functionality shall break.

Applies to: Content spacing.

WCAG cross-reference: sc-1-4-12.

Assessment heuristics:

  • Apply a bookmarklet or user stylesheet that injects the four required spacing overrides and confirm representative pages still render without clipped or overlapping text.

  • Verify fixed-height containers expand or scroll rather than truncate text when spacing increases.

  • Confirm form controls, navigation, and modals retain readable layout under the overrides.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-1-4-13

9.1.4.13 Content on hover or focus

Additional content that appears on hover or keyboard focus (tooltips, popovers, custom menus) shall be dismissible, hoverable, and persistent until dismissed, focus moves away, or the information is no longer valid.

Applies to: Dynamic content.

WCAG cross-reference: sc-1-4-13.

Assessment heuristics:

  • Inventory tooltips, popovers, and hover menus and confirm Esc dismisses them without moving focus.

  • Verify the user can move the pointer onto the new content (to read or interact) without it disappearing.

  • Confirm the new content remains visible until the user dismisses it, moves focus, or it becomes invalid; reject auto-hide timers under five seconds.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-2-1-1

9.2.1.1 Keyboard

All functionality of the content shall be operable through a keyboard interface without requiring specific timings for individual keystrokes, except where the underlying function requires input that depends on the path of the user's movement (drawing, gesture).

Applies to: Input methods.

WCAG cross-reference: sc-2-1-1.

Assessment heuristics:

  • Unplug the mouse and complete every primary user journey using only the keyboard, including custom components, modals, drag-and-drop, and rich editors.

  • Confirm mouse-only handlers (onmousedown, onclick without keyboard equivalents) have keyboard counterparts (onkeydown/onkeyup or native interactive elements).

  • Document any path-dependent operation that legitimately resists keyboard access and confirm an alternative is offered.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-2-1-2

9.2.1.2 No keyboard trap

If keyboard focus can be moved to a component, focus shall also be removable from that component using only the keyboard, using standard exit keys (Tab/Shift+Tab or Esc) or a documented mechanism.

Applies to: Navigation.

WCAG cross-reference: sc-2-1-2.

Assessment heuristics:

  • Tab through every page region (modals, embedded media, custom widgets, iframes) and confirm focus can leave each one without resorting to the mouse.

  • Test embedded third-party content (video players, ad slots, payment iframes) for trapping behaviour and document mitigations.

  • Confirm modal dialogs implement an Esc-to-close handler and restore focus to the triggering element.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-2-1-4

9.2.1.4 Character key shortcuts

If a keyboard shortcut is implemented using only letter, punctuation, number, or symbol characters, the user shall be able to turn the shortcut off, remap it, or restrict it to fire only when focus is on a relevant control.

Applies to: Keyboard bindings.

WCAG cross-reference: sc-2-1-4.

Assessment heuristics:

  • Inventory all single-key shortcuts in the application and verify each is either off by default, remappable, or scoped to focused elements.

  • Confirm a settings surface exists to disable or rebind shortcuts and that the setting persists across sessions.

  • Test with speech-input users (Dragon, Voice Access) where stray dictation can otherwise trigger destructive shortcuts.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-2-2-1

9.2.2.1 Timing adjustable

For each time limit set by the content, the user shall be able to turn off, adjust, or extend the limit, with documented exceptions for real-time events, essential limits, and limits longer than 20 hours.

Applies to: Timed content.

WCAG cross-reference: sc-2-2-1.

Assessment heuristics:

  • Inventory session-timeout, form-completion, quiz, and inactivity-warning timers and confirm each offers a turn-off, adjust, or extend mechanism.

  • Verify users receive a warning before the timer expires with at least 20 seconds to extend.

  • Document essential time limits (auctions, exam clocks) and confirm they are flagged in the conformance report.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-2-2-2

9.2.2.2 Pause, stop, hide

Moving, blinking, scrolling, or auto-updating content that starts automatically, lasts more than five seconds, and is presented alongside other content shall provide a mechanism for the user to pause, stop, or hide it.

Applies to: Animated content.

WCAG cross-reference: sc-2-2-2.

Assessment heuristics:

  • Inventory carousels, marquees, animated banners, ticker feeds, and auto-refreshing widgets and confirm each exposes a pause/stop control.

  • Verify the control is operable by keyboard and announced by screen readers.

  • Confirm essential animations (loading spinners, video playback) are excluded only with documented justification.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-2-3-1

9.2.3.1 Three flashes or below threshold

Web pages shall not contain anything that flashes more than three times in any one-second period, or shall ensure the flashing area falls below the general and red-flash thresholds defined in WCAG.

Applies to: Animation safety.

WCAG cross-reference: sc-2-3-1.

Assessment heuristics:

  • Run flashing content (animated GIFs, video segments, motion graphics) through PEAT or an equivalent analyser and document any failures.

  • Confirm policy gates upload paths so user-generated video that fails the threshold is rejected or muted.

  • Document any approved high-risk content behind an explicit warning and a click-through gate.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-2-4-1

9.2.4.1 Bypass blocks

A mechanism shall be provided to bypass blocks of content that are repeated on multiple web pages (typically a "skip to main content" link or properly structured landmark regions).

Applies to: Navigation aids.

WCAG cross-reference: sc-2-4-1.

Assessment heuristics:

  • Confirm the page exposes either a visible skip link as the first focusable element or correct ARIA landmarks (banner, navigation, main, contentinfo).

  • Verify the skip link is announced and focusable, even if visually hidden by default, and that activating it moves focus into the main region.

  • Test landmark navigation in NVDA, VoiceOver, and JAWS to confirm regions are reachable.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-2-4-2

9.2.4.2 Page titled

Web pages shall have titles that describe their topic or purpose.

Applies to: Page identification.

WCAG cross-reference: sc-2-4-2.

Assessment heuristics:

  • Crawl the site and confirm every page sets a <title> element that is unique, descriptive, and front-loaded with the most distinguishing information.

  • Verify single-page-application route changes update the document title programmatically.

  • Reject placeholder titles ("Untitled", "Document", template strings) in the production build.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-2-4-3

9.2.4.3 Focus order

When users navigate sequentially through content, focus shall move in an order that preserves meaning and operability.

Applies to: Keyboard navigation.

WCAG cross-reference: sc-2-4-3.

Assessment heuristics:

  • Tab through every page region and confirm focus follows the visual reading order without unexpected jumps.

  • Reject positive tabindex values that override natural document order except where rigorously justified.

  • Confirm modals, drawers, and inline panels trap focus appropriately and restore focus to a logical location on close.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-2-4-4

9.2.4.4 Link purpose (in context)

The purpose of each link shall be determinable from the link text alone or from the link text together with its programmatically determined context (sentence, paragraph, list item, table cell, or section heading).

Applies to: Link text.

WCAG cross-reference: sc-2-4-4.

Assessment heuristics:

  • Extract every link's text and immediate context and confirm the purpose is clear when read in isolation by a screen reader's links list.

  • Replace generic "click here", "read more", and "learn more" text with descriptive equivalents or supplement with aria-label/aria-labelledby.

  • Verify icon-only links carry an accessible name from aria-label, visually-hidden text, or the surrounding text.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-2-4-5

9.2.4.5 Multiple ways

More than one way shall be available to locate a web page within a set of web pages, except where the page is the result of, or a step in, a process.

Applies to: Navigation options.

WCAG cross-reference: sc-2-4-5.

Assessment heuristics:

  • Confirm the site provides at least two of: a search, a sitemap, a table of contents, related-pages list, or a navigation menu that exposes every page.

  • Verify the alternative navigation methods are themselves accessible (keyboard, screen reader) and reach the same destination pages.

  • Document process-step pages (checkout, wizards) that are properly excluded.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-2-4-6

9.2.4.6 Headings and labels

Headings and form labels shall describe the topic or purpose of the section or field they introduce.

Applies to: Content structure.

WCAG cross-reference: sc-2-4-6.

Assessment heuristics:

  • Read the heading outline of each page in isolation and confirm it summarises the page contents.

  • Confirm every form field carries a unique, descriptive label that explains what to enter (not just a generic "Field 1" pattern).

  • Reject duplicate or ambiguous labels and headings that obscure rather than describe the section.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-2-4-7

9.2.4.7 Focus visible

Any keyboard-operable user-interface component shall have a visible focus indicator when it receives focus.

Applies to: Focus indication.

WCAG cross-reference: sc-2-4-7.

Assessment heuristics:

  • Tab through representative pages and confirm every interactive element shows a clearly visible focus indicator that is not removed by outline: none without a replacement.

  • Verify focus indicators remain visible in dark mode, high-contrast mode, and against busy backgrounds.

  • Confirm custom widgets (menubars, listboxes, comboboxes) render a focus ring on the active descendant.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-2-5-1

9.2.5.1 Pointer gestures

All functionality that uses multipoint or path-based gestures (pinch, two-finger swipe, drag-along-a-path) shall also be operable with a single pointer without a path-based gesture, unless such a gesture is essential.

Applies to: Gesture interactions.

WCAG cross-reference: sc-2-5-1.

Assessment heuristics:

  • Inventory gestures (pinch-zoom on maps and images, swipe-to-delete on lists, drag-to-reorder, custom touch interactions) and verify each offers a single-point alternative (button, menu, keyboard control).

  • Confirm the alternative is reachable on both touch and desktop and is announced to assistive technology.

  • Document essential gestures (signature capture, drawing) that legitimately retain a path requirement.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-2-5-2

9.2.5.2 Pointer cancellation

For functionality operated with a single pointer, the down-event shall not execute the action; the action shall fire on the up-event, be abortable before up, or be reversible.

Applies to: Pointer activation.

WCAG cross-reference: sc-2-5-2.

Assessment heuristics:

  • Confirm primary actions (form submit, navigation, destructive controls) fire on click/pointerup rather than pointerdown/mousedown.

  • Verify that dragging off a button before release cancels the action.

  • Document essential exceptions (instrument keys in a music app, hold-to-talk) and confirm they are flagged accordingly.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-2-5-3

9.2.5.3 Label in name

For user-interface components with labels that include visible text, the accessible name shall contain the visible text.

Applies to: Accessible names.

WCAG cross-reference: sc-2-5-3.

Assessment heuristics:

  • Audit components with visible text labels and confirm the accessible name (computed via aria-label, aria-labelledby, or content) begins with or contains that visible text.

  • Reject aria-label overrides that replace the visible text with a different string, since this breaks voice-input ("click Sign up").

  • Validate with the browser accessibility tree inspector across a representative component sample.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-2-5-4

9.2.5.4 Motion actuation

Functionality that can be operated by device motion (shake, tilt) or user motion (waving in front of a camera) shall also be operable through standard UI controls, and the motion-actuation behaviour shall be disableable.

Applies to: Device-motion controls.

WCAG cross-reference: sc-2-5-4.

Assessment heuristics:

  • Inventory motion-triggered features (shake-to-undo, tilt-to-pan, gesture-camera input) and confirm each offers a UI-based alternative.

  • Verify a setting exists to disable motion actuation and that the setting persists.

  • Confirm involuntary motion (tremor, transport) does not trigger destructive actions in default settings.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-3-1-1

9.3.1.1 Language of page

The default human language of each web page shall be programmatically determined (typically through the lang attribute on the root <html> element).

Applies to: Page language.

WCAG cross-reference: sc-3-1-1.

Assessment heuristics:

  • Confirm every page sets <html lang="…"> to a valid BCP 47 tag matching the rendered language.

  • Verify localisation pipelines emit the language attribute per locale rather than serving a fixed default.

  • Capture the language-attribute policy in the conformance report and gate it in CI.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-3-1-2

9.3.1.2 Language of parts

The human language of each passage or phrase whose language differs from the page default shall be programmatically determined.

Applies to: Content language.

WCAG cross-reference: sc-3-1-2.

Assessment heuristics:

  • Audit content for embedded quotations, names, and phrases in a language other than the page default and confirm each carries a lang attribute on the enclosing element.

  • Verify CMS authoring tools expose a language-attribute control to editors.

  • Test with a screen reader configured for the page default and confirm it switches voice when reading the tagged phrase.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-3-2-1

9.3.2.1 On focus

When any user-interface component receives focus, it shall not initiate a change of context (new window, focus jump, form submission, major content change).

Applies to: Input behavior.

WCAG cross-reference: sc-3-2-1.

Assessment heuristics:

  • Tab through every interactive control and confirm receiving focus does not trigger navigation, submission, or a popup.

  • Reject autocomplete dropdowns that move focus or submit on focus rather than on user action.

  • Confirm select elements do not navigate on focus change in custom widgets.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-3-2-2

9.3.2.2 On input

Changing the setting of a user-interface component shall not automatically cause a change of context unless the user has been warned before using the component.

Applies to: Input changes.

WCAG cross-reference: sc-3-2-2.

Assessment heuristics:

  • Inventory controls that change context on input (select-to-navigate menus, auto-submit toggles, dynamic filter forms) and confirm either the behaviour is removed or an explicit warning precedes the control.

  • Provide a submit button for forms that change context, rather than firing on input change.

  • Confirm the warning is announced to assistive technology before the control receives focus.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-3-2-3

9.3.2.3 Consistent navigation

Navigational mechanisms that are repeated on multiple pages within a set shall appear in the same relative order each time they are presented.

Applies to: Navigation pattern.

WCAG cross-reference: sc-3-2-3.

Assessment heuristics:

  • Compare the global header, footer, sidebar, and breadcrumb regions across a representative sample of pages and confirm element order is consistent.

  • Verify user-initiated reordering (drag-to-customise) defaults to the shared baseline and persists per user only.

  • Capture the navigation pattern in the design system and gate against drift in CI.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-3-2-4

9.3.2.4 Consistent identification

Components that have the same functionality across pages within a set shall be identified consistently (icon, label, accessible name).

Applies to: UI consistency.

WCAG cross-reference: sc-3-2-4.

Assessment heuristics:

  • Inventory recurring controls (search button, print, share, help) and confirm each uses the same icon, label, and accessible name across pages.

  • Reject inconsistent labelling like "Search" on one page and "Find" on another for the same component.

  • Capture the labelling baseline in the design system content guide.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-3-3-1

9.3.3.1 Error identification

When an input error is automatically detected, the failing item shall be identified and the error described in text.

Applies to: Form errors.

WCAG cross-reference: sc-3-3-1.

Assessment heuristics:

  • Trigger validation errors on representative forms and confirm each failing field is identified by name and the error is described in text (not just colour or icon).

  • Verify error messages are associated with their inputs via aria-describedby or programmatic relationship so screen readers announce them.

  • Confirm summary error messages link to the offending fields.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-3-3-2

9.3.3.2 Labels or instructions

Labels or instructions shall be provided when content requires user input.

Applies to: Form guidance.

WCAG cross-reference: sc-3-3-2.

Assessment heuristics:

  • Confirm every form field carries a persistent visible label (not placeholder text alone) and supplementary instructions for any non-obvious format requirements.

  • Verify required fields are identified both visually and programmatically (aria-required, required).

  • Confirm format hints (date format, password rules) are visible before the user begins typing rather than only on error.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-3-3-3

9.3.3.3 Error suggestion

When an input error is automatically detected and suggestions for correction are known, the suggestions shall be provided to the user unless doing so would jeopardise security or the purpose of the content.

Applies to: Error recovery.

WCAG cross-reference: sc-3-3-3.

Assessment heuristics:

  • Audit validation messages and confirm each one offers a concrete correction suggestion (expected format, allowed values, closest match) where suggestions are derivable.

  • Reject vague "Invalid input" messages in favour of actionable guidance.

  • Document security-sensitive fields (e.g. credentials) where suggestions are intentionally withheld.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-3-3-4

9.3.3.4 Error prevention (legal, financial, data)

For pages that cause legal commitments, financial transactions, modify or delete user-controlled data, or submit test responses, submissions shall be reversible, checked for input errors with a chance to correct, or confirmed before final submission.

Applies to: Critical input.

WCAG cross-reference: sc-3-3-4.

Assessment heuristics:

  • Inventory checkout, contract-signing, data-deletion, and exam-submission flows and confirm each offers reversal, validation-with-correction, or an explicit confirmation step.

  • Verify the confirmation surface displays the data that will be committed in a reviewable format.

  • Confirm destructive actions outside these flows (account deletion, bulk operations) follow the same pattern.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-4-1-1

9.4.1.1 Parsing

In content implemented using markup languages, elements shall have complete start and end tags, shall be nested according to specification, shall not contain duplicate attributes, and any IDs shall be unique. (EN 301 549 V3.2.1 inherits this from WCAG 2.1; WCAG 2.2 has since deprecated it, but the criterion remains in force for EN 301 549 conformance.)

Applies to: Code validity.

WCAG cross-reference: sc-4-1-1.

Assessment heuristics:

  • Run an HTML validator across representative pages and triage parse errors that would affect assistive-technology interpretation.

  • Audit for duplicate id attributes that break label, aria-describedby, and aria-labelledby associations.

  • Confirm dynamic content updates (SPA route changes, component re-renders) preserve unique IDs and valid nesting.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-4-1-2

9.4.1.2 Name, role, value

For all user-interface components, the name and role shall be programmatically determined; states, properties, and values that can be set by the user shall be programmatically settable; and notification of changes shall be available to assistive technology.

Applies to: Accessible components.

WCAG cross-reference: sc-4-1-2.

Assessment heuristics:

  • Inspect the accessibility tree for every custom component and confirm it exposes a correct role, accessible name, and current state (expanded, selected, checked, pressed).

  • Prefer native HTML elements over divs with ARIA where possible; verify ARIA widget patterns follow the ARIA Authoring Practices.

  • Test components with NVDA, VoiceOver, and JAWS to confirm state changes are announced.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-9-4-1-3

9.4.1.3 Status messages

Status messages (success, error, progress, in-page notifications) shall be programmatically determined through role or property so assistive technology can present them without moving focus.

Applies to: Notifications.

WCAG cross-reference: sc-4-1-3.

Assessment heuristics:

  • Inventory toasts, inline confirmations, progress indicators, and validation banners and confirm each uses role="status", role="alert", or an appropriate aria-live region.

  • Verify the live region is present in the DOM before the message is injected so the announcement fires reliably.

  • Confirm urgency and politeness levels (aria-live="polite" vs assertive) match the message importance.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

Clause 10: Non-Web Documents

Clause 10 of EN 301 549 V3.2.1 adopts a curated subset of WCAG 2.1 Level A and AA success criteria and reapplies them to non-web documents (tagged PDF, DOCX, PPTX, XLSX, EPUB, ODT, and other portable formats). The reading experience for these formats is driven by document viewers and assistive technology rather than by browsers, so each sub-clause restates the WCAG requirement in terms of what a document author and a document-producing tool chain must encode into the file itself. Live web behaviours (timing, scripted state, dynamic input) are out of scope; the curated list focuses on perceivable content, operable navigation, and understandable language as expressed through document structure and metadata.

Source: ETSI / CEN / CENELEC, EN 301 549 V3.2.1, Clause 10, https://www.etsi.org/deliver/etsi_en/301500_301599/301549/. Summaries below are paraphrased; consult the official document for normative wording and the linked WCAG 2.2 reference files for criterion-level technical detail.

clause-10-1-1-1

10.1.1.1 Non-text content

Every non-text element in the document (images, charts, icons, decorative ornaments, scanned pages) shall carry a text alternative that conveys equivalent information or function, or shall be marked as decorative so assistive technology can skip it. Purely decorative artwork shall be tagged as an artifact; informational graphics shall expose alternative text through the document format's native mechanism (PDF /Alt, Office image alt-text, EPUB alt attribute).

Applies to: Images in documents.

WCAG cross-reference: sc-1-1-1.

Assessment heuristics:

  • Enumerate every image, shape, chart, and icon in the document and confirm each one has either an alternative text string or an "artifact / decorative" tag.

  • Open the file in a screen reader (NVDA + Acrobat, VoiceOver + Preview, JAWS + Word) and verify the alternative is announced when navigating to the image.

  • Confirm scanned pages have been processed through OCR so the underlying text is available to assistive technology, not just the page image.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-10-1-2-1

10.1.2.1 Audio-only and video-only (prerecorded)

For prerecorded audio-only content embedded in or referenced by the document, an equivalent text transcript shall be provided. For prerecorded video-only content (silent video), either a text description or an equivalent audio track shall be provided so users who cannot see the video receive the same information.

Applies to: Prerecorded media in documents.

WCAG cross-reference: sc-1-2-1.

Assessment heuristics:

  • For each embedded audio file, confirm a transcript is included in the document body or linked from the same page that hosts the audio.

  • For each embedded silent video, confirm a textual description or equivalent narration accompanies the video and conveys the same information.

  • Verify alternatives are reachable by the document's reading order, not stranded in a separate file the screen reader cannot locate.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-10-1-2-2

10.1.2.2 Captions (prerecorded)

Prerecorded video with synchronized audio that is embedded in or referenced by the document shall be accompanied by captions for all spoken dialogue and meaningful non-speech audio. Captions shall be either open (burned into the video) or available through a caption track the document viewer can render.

Applies to: Video in documents.

WCAG cross-reference: sc-1-2-2.

Assessment heuristics:

  • For each video with audio, verify a synchronized caption track is bundled with the document or made available alongside it.

  • Confirm captions cover dialogue, speaker identification when ambiguous, and non-speech sounds that carry meaning.

  • Spot-check timing against the audio to confirm captions match speech without drift.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-10-1-2-3

10.1.2.3 Audio description or media alternative (prerecorded)

Prerecorded video with synchronized audio shall be accompanied by either an audio description of the visual track during natural pauses in dialogue, or a full media alternative (a text document that describes both the audio and the visual track in sequence).

Applies to: Video in documents.

WCAG cross-reference: sc-1-2-3.

Assessment heuristics:

  • For each video, confirm either an audio-described version is available or a full text alternative is provided in the document.

  • Verify the text alternative includes setting, actions, on-screen text, and speaker cues sufficient for a non-sighted reader to follow the narrative.

  • Confirm the alternative is linked from the same context as the video so users can locate it without separate instructions.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-10-1-3-1

10.1.3.1 Info and relationships

The structure that is conveyed visually (headings, paragraphs, lists, tables, columns, sidebars, captions) shall also be encoded in the document's underlying semantics so assistive technology can present the same relationships. Use real heading styles instead of bold text, real list elements instead of bullet glyphs, and tagged tables with header rows or columns marked as such.

Applies to: Document structure.

WCAG cross-reference: sc-1-3-1.

Assessment heuristics:

  • Inspect the document's tag tree (Acrobat Tags pane, Word accessibility checker, EPUB nav doc) and confirm headings, lists, and tables map to their semantic equivalents.

  • Verify data tables identify header cells; complex tables additionally use scope or header-id associations so cell relationships are unambiguous.

  • Confirm form fields, where present, carry programmatic labels and group associations rather than placeholder text alone.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-10-1-3-2

10.1.3.2 Meaningful sequence

The reading order encoded in the document shall match the order required to understand the content. Multi-column layouts, sidebars, callouts, and floating images shall be sequenced so a linear read (screen reader, refreshable braille, reflow on small screens) presents content in the author's intended order.

Applies to: Content order in documents.

WCAG cross-reference: sc-1-3-2.

Assessment heuristics:

  • Use the viewer's "read order" or "reflow" view to walk the document linearly and confirm the sequence matches the visual narrative.

  • For PDFs, inspect the tag tree to confirm sidebars and pull quotes are placed at the intended position rather than interrupting body flow.

  • Test with a screen reader on a multi-column page and confirm reading does not cross columns mid-sentence.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-10-1-3-3

10.1.3.3 Sensory characteristics

Instructions embedded in the document shall not rely solely on sensory properties (shape, colour, size, visual location, sound) to identify referenced elements. Pair a sensory cue with a text descriptor such as the figure number, section title, or field label.

Applies to: Document instructions.

WCAG cross-reference: sc-1-3-3.

Assessment heuristics:

  • Search the document for instructional phrasing ("click the green button", "see the chart on the right", "the round icon") and confirm each instance also names the element by label or section.

  • Verify cross-references use figure or section identifiers rather than positional shorthand ("see above", "the box on the left").

  • Confirm any audio cues are paired with a textual alert that delivers the same information.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-10-1-4-1

10.1.4.1 Use of color

Colour shall not be the sole means of conveying information, indicating an action, prompting a response, or distinguishing a visual element. Pair colour with text, iconography, patterns, or labels so the same information reaches users who cannot perceive the colour distinction.

Applies to: Visual design in documents.

WCAG cross-reference: sc-1-4-1.

Assessment heuristics:

  • Review charts, status indicators, highlighted text, and legends; verify each colour distinction is paired with a label, pattern, or icon.

  • Convert the document to greyscale and confirm the meaning still comes through.

  • Inspect required-field markers and error highlights to confirm they carry text or an icon alongside the colour.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-10-1-4-2

10.1.4.2 Audio control

When the document auto-plays audio that lasts more than three seconds, it shall provide a mechanism to pause, stop, or independently lower the audio volume without requiring the user to change system-wide settings. Documents that do not auto-play audio satisfy the clause by construction.

Applies to: Sound in documents.

WCAG cross-reference: sc-1-4-2.

Assessment heuristics:

  • Open the document and confirm whether any audio starts automatically; if it does, time it against the three-second threshold.

  • When auto-play exceeds three seconds, verify a pause or stop control is exposed in the document or by the viewer.

  • Confirm volume control is independent of the operating system mixer (in-document slider, viewer-level volume control) so users can lower the document's audio without muting other applications.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-10-1-4-3

10.1.4.3 Contrast (minimum)

Body text and images of text in the document shall meet a 4.5 to 1 contrast ratio against their background; large-scale text (18 point regular or 14 point bold and above) shall meet a 3 to 1 ratio. Logotypes and incidental text are exempt.

Applies to: Text and graphics in documents.

WCAG cross-reference: sc-1-4-3.

Assessment heuristics:

  • Sample representative body and heading styles on each page background colour and measure the contrast ratio with a colour-contrast tool.

  • Verify text that overlays photographs, gradients, or watermarks meets the ratio at the worst-case overlap region.

  • Confirm images of text used in the document (banners, diagrams with embedded labels) also meet the ratio, or replace them with live text.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-10-2-1-1

10.2.1.1 Keyboard

Any interactive functionality the document exposes (form fields, buttons, hyperlinks, navigation aids, embedded media controls) shall be operable through a keyboard interface, without requiring specific timings for individual keystrokes. Pointer-only interactions are not acceptable as the sole operating mode.

Applies to: Document navigation.

WCAG cross-reference: sc-2-1-1.

Assessment heuristics:

  • Tab through the document and confirm every interactive element receives focus and can be activated with Enter, Space, or the appropriate key for the control type.

  • Verify embedded media players expose keyboard-operable play, pause, and seek controls.

  • Confirm form submission, signature fields, and bookmark navigation work without the mouse.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-10-2-1-2

10.2.1.2 No keyboard trap

When the keyboard moves focus into any part of the document, focus shall also be able to move away from that part using the keyboard alone. If a non-standard interaction (modal, embedded media, signature pad) requires a particular key to exit, the exit method shall be discoverable.

Applies to: Document input.

WCAG cross-reference: sc-2-1-2.

Assessment heuristics:

  • Tab forward and backward through every interactive region and confirm focus exits each control without requiring the mouse.

  • Test embedded media, scripted forms, and signature widgets; confirm Escape, Tab, or a documented key combination releases focus.

  • Verify any documented exit shortcut appears in the document's instructions or tooltip text.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-10-2-4-2

10.2.4.2 Document titled

The document shall carry a title that identifies its topic or purpose. The title shall be stored in the document's metadata (PDF /Title, Office document properties, EPUB metadata, ODF meta:title) so viewers and assistive technology can announce it.

Applies to: Document identification.

WCAG cross-reference: sc-2-4-2.

Assessment heuristics:

  • Open the document properties dialog and confirm the title field is populated with a descriptive string rather than a file name or boilerplate.

  • Configure the viewer to display the document title (Acrobat: View > Page Display > Document Title) and confirm it surfaces in the window chrome.

  • Verify automated export pipelines preserve the title across format conversions.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-10-2-4-3

10.2.4.3 Focus order

When the document supports keyboard navigation, focus shall move through interactive elements in an order that preserves meaning and operability. The tab order shall align with the document's reading order and shall not skip past required fields or jump unexpectedly across the page.

Applies to: Document focus.

WCAG cross-reference: sc-2-4-3.

Assessment heuristics:

  • Tab through a form-bearing document and confirm focus moves field-by-field in the same order a sighted user would complete the form.

  • For PDFs, inspect the Tab Order setting and confirm it is set to "Use Document Structure" rather than the row or column default.

  • Verify focus order remains coherent when the document is reflowed for small-screen viewers.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-10-3-1-1

10.3.1.1 Language of document

The default human language of the document shall be programmatically identified in the document's metadata or root structure (PDF /Lang, Office language property, EPUB xml:lang on the root, ODF document language). Assistive technology uses this value to select the correct speech synthesiser and pronunciation rules.

Applies to: Document language.

WCAG cross-reference: sc-3-1-1.

Assessment heuristics:

  • Inspect the document properties and confirm the language field is set to a valid BCP 47 tag that matches the document's primary language.

  • Open the document with a screen reader configured for a different default language and confirm it switches to the document's declared language during reading.

  • Verify automated authoring pipelines emit the language tag rather than relying on viewer defaults.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

Clause 11: Software

Clause 11 of EN 301 549 V3.2.1 carries WCAG 2.1 Level A and AA success criteria into the native software application context, covering desktop applications, mobile apps, embedded firmware UIs, and kiosk software. Where Clause 9 binds WCAG to web content, Clause 11 binds the same criteria to UI built on platform toolkits and exposes them through the operating-system accessibility APIs (UIA, AT-SPI, ATK, AXAPI, Android AccessibilityService, iOS UIAccessibility, Java Access Bridge). Each sub-clause below restates the WCAG outcome in software-UI terms; the linked WCAG cross-reference in the sibling wcag-22 skill carries the full technical detail and test procedure.

Source: ETSI / CEN / CENELEC, EN 301 549 V3.2.1, Clause 11, https://www.etsi.org/deliver/etsi_en/301500_301599/301549/. Summaries below are paraphrased; consult the official document for normative wording.

clause-11-1-1-1

11.1.1.1 Non-text content

Software shall expose a text alternative for every non-text UI element (icon button, status glyph, decorative image, chart, captcha) through the platform accessibility API so assistive technologies can read the alternative in place of the graphic. Purely decorative graphics shall be marked so AT can skip them.

Applies to: UI graphics and icons rendered by the application or its UI toolkit.

WCAG cross-reference: sc-1-1-1.

Assessment heuristics:

  • Enumerate every icon, image, and graphical control and confirm each has an accessible name exposed through the platform API.

  • Run a screen reader (NVDA, JAWS, VoiceOver, TalkBack, Orca) over each window and verify the announced name matches the visual purpose.

  • Mark decorative-only graphics as hidden from AT so they do not clutter the accessibility tree.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-1-3-1

11.1.3.1 Info and relationships

Software shall expose UI structure (groupings, lists, tables, headings, form fields and their labels, landmarks) through the platform accessibility API so the relationships conveyed visually are also available programmatically. Toolkit controls shall use the correct semantic roles rather than visually styled generic containers.

Applies to: UI structure across windows, dialogs, panes, and complex composite controls.

WCAG cross-reference: sc-1-3-1.

Assessment heuristics:

  • Inspect the accessibility tree (Accessibility Insights, Accerciser, Xcode Accessibility Inspector, Android Layout Inspector) and confirm each visible group maps to a structural element with the correct role.

  • Verify form fields are programmatically associated with their labels rather than relying on adjacency alone.

  • Confirm data tables expose row and column relationships and that headings expose level information.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-1-3-2

11.1.3.2 Meaningful sequence

The reading and navigation order presented through the accessibility tree shall match the order in which the user is expected to perceive and operate the UI. Visual reflow, RTL mirroring, and asynchronous panel insertion shall not produce an AT traversal order that contradicts the visual sequence.

Applies to: Order of UI components as presented to assistive technology.

WCAG cross-reference: sc-1-3-2.

Assessment heuristics:

  • Traverse each window with screen-reader navigation commands and confirm the announced order matches the intended visual reading order.

  • Tab through controls and confirm focus moves in the same order an unsupported sighted user would scan.

  • Re-check after locale changes, window resizing, and dynamic panel updates.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-1-3-3

11.1.3.3 Sensory characteristics

In-app instructions and prompts shall not rely solely on shape, size, visual location, orientation, or sound to identify the control or action being referenced. Wording shall identify targets by accessible name or position in the structural model so users without that sensory channel can still follow.

Applies to: In-app instructions, tutorials, error messages, and tooltips.

WCAG cross-reference: sc-1-3-3.

Assessment heuristics:

  • Scan instructional text for phrases like "the round button", "the icon on the right", or "press the button that beeps" and replace them with accessible-name references.

  • When spatial directions are unavoidable, pair them with the accessible name of the target.

  • Validate that audio cues are mirrored by a visible state change.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-1-4-1

11.1.4.1 Use of color

Color shall not be the only visual means of conveying information, indicating an action, prompting a response, or distinguishing a UI state in the application's visual design. A non-color cue (icon, text, pattern, shape, position) shall accompany every color-coded distinction.

Applies to: Visual design of the application — status indicators, validation feedback, chart series, theme states.

WCAG cross-reference: sc-1-4-1.

Assessment heuristics:

  • Render each screen in monochrome (or in a high-contrast simulator) and confirm all state distinctions remain perceivable.

  • Pair color-coded validation errors with an icon and explicit text.

  • For charts, supply patterns, markers, or labels in addition to series color.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-1-4-2

11.1.4.2 Audio control

Where the application plays audio automatically for more than three seconds, it shall provide a mechanism to pause, stop, or independently adjust the application's audio volume separately from overall system volume. Background audio shall not block use of speech output from AT.

Applies to: Application audio output — alerts, ambient sound, autoplaying media.

WCAG cross-reference: sc-1-4-2.

Assessment heuristics:

  • Inventory every auto-playing audio source and confirm an in-app control mutes or pauses it within reach of the first focusable control.

  • Verify the in-app volume slider is independent of the OS master volume.

  • Confirm screen-reader speech remains intelligible while application audio is active.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-1-4-3

11.1.4.3 Contrast (minimum)

Text and images of text rendered by the application shall meet a contrast ratio of at least 4.5:1 against their background, or 3:1 for large text (18 pt regular or 14 pt bold and larger). Inactive controls, pure decoration, and incidental text are exempt.

Applies to: Application contrast ratio for text rendered in the UI.

WCAG cross-reference: sc-1-4-3.

Assessment heuristics:

  • Sample foreground and background colors with an eyedropper or contrast analyzer (Colour Contrast Analyser, axe DevTools) across every theme the app ships.

  • Re-test after honoring OS dark-mode or high-contrast theme settings.

  • Confirm placeholder text and helper text meet the same threshold, not just the primary body text.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-1-4-11

11.1.4.11 Non-text contrast

Visual information needed to identify UI components and their states (focus ring, selected toggle, checkbox tick, slider thumb, input border) and meaningful graphical objects (icons that convey information, chart elements) shall have a contrast ratio of at least 3:1 against adjacent colors.

Applies to: UI components and graphical objects rendered by the application.

WCAG cross-reference: sc-1-4-11.

Assessment heuristics:

  • Measure the border or fill of each control state (default, hover, focused, selected, disabled) against the adjacent surface.

  • Verify the focus indicator contrasts at least 3:1 with both the focused control's resting state and the surrounding background.

  • For informational icons, measure the icon glyph against its background.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-2-1-1

11.2.1.1 Keyboard

All functionality of the application shall be operable through a keyboard interface without requiring specific timings for individual keystrokes, except where the underlying function requires input that depends on the path of the user's movement (for example, freehand drawing).

Applies to: Application keyboard access across every function exposed in the UI.

WCAG cross-reference: sc-2-1-1.

Assessment heuristics:

  • Disconnect the pointing device and walk through every user task end to end using only the keyboard.

  • Verify custom controls implement keyboard equivalents for every mouse gesture (drag, right-click, double-click, hover-reveal).

  • Document and justify any path-dependent exception in the conformance report.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-2-1-2

11.2.1.2 No keyboard trap

If keyboard focus can be moved into a component, focus shall be moveable away from that component using only the keyboard, and the user shall be advised of the exit method if it is anything other than standard arrow, tab, or escape keys.

Applies to: Application focus management — modal dialogs, embedded controls, custom widgets, plug-in surfaces.

WCAG cross-reference: sc-2-1-2.

Assessment heuristics:

  • Tab into every dialog, popover, embedded WebView, OLE/embedded document, and confirm Tab and Shift+Tab move focus out.

  • Verify Escape dismisses modal layers and returns focus to the originating control.

  • Where exit requires a non-standard key, surface the instruction on entering the trap zone.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-2-2-1

11.2.2.1 Timing adjustable

For every time limit the application imposes (session timeout, response window, auto-advance, countdown), the user shall be able to turn off, adjust to at least ten times the default, or extend the limit at least once with a simple action, unless the timing is essential or shorter than 20 hours.

Applies to: Application timed interactions — auto-logout, transaction windows, quiz timers, slide auto-advance.

WCAG cross-reference: sc-2-2-1.

Assessment heuristics:

  • Catalog every timer and identify the user-facing control to extend, adjust, or disable it.

  • Verify the warning fires at least 20 seconds before the deadline and is announced by AT.

  • Confirm session extension is reachable from keyboard focus without first dismissing other UI.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-2-2-2

11.2.2.2 Pause, stop, hide

Moving, blinking, scrolling, or auto-updating content in the application that starts automatically, lasts more than five seconds, or appears alongside other content shall be pausable, stoppable, or hidable by the user, and auto-updating content shall additionally be controllable in update frequency.

Applies to: Application animations and auto-updating content — splash animations, busy indicators that exceed five seconds, news tickers, live charts.

WCAG cross-reference: sc-2-2-2.

Assessment heuristics:

  • Expose a global pause control or honor the OS reduced-motion setting (prefers-reduced-motion equivalent) for every long-running animation.

  • Provide a stop or hide control on tickers, carousels, and animated status surfaces.

  • Verify auto-refresh intervals can be increased or disabled by the user.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-2-4-3

11.2.4.3 Focus order

Where the application can be navigated sequentially and the order affects meaning or operation, the focus order shall preserve meaning and operability. Dynamic content insertion (newly opened panes, just-revealed wizards) shall move focus to the expected next step rather than dropping the user back to the start of the window.

Applies to: Application focus sequence across windows, dialogs, and dynamic panel insertion.

WCAG cross-reference: sc-2-4-3.

Assessment heuristics:

  • Tab through each window and confirm focus traverses controls in the order a user would expect to operate them.

  • When a modal opens, confirm focus moves into the modal, and when it closes, focus returns to the invoking control.

  • In wizards, confirm each step begins with focus on the first actionable control of that step.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-2-4-6

11.2.4.6 Headings and labels

Headings and labels in the application shall describe topic or purpose. Generic strings such as "Button 1", "Input", or unlabeled toolbar buttons shall be replaced with descriptive accessible names so AT users can distinguish controls by their announced name alone.

Applies to: Application labels — control labels, section headings, group labels, accessible names exposed to AT.

WCAG cross-reference: sc-2-4-6.

Assessment heuristics:

  • Run a screen reader and list every announced label; flag any non-descriptive or duplicated label for rewording.

  • Confirm icon-only buttons carry a tooltip or accessible name that describes the action, not the icon.

  • Verify section headings within a window describe the content that follows.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-2-4-7

11.2.4.7 Focus visible

Any keyboard-operable UI component shall have a visible focus indicator whenever it receives keyboard focus. The indicator shall be distinguishable from the control's unfocused appearance and shall not be suppressed by custom theming.

Applies to: Application focus indication on every focusable control.

WCAG cross-reference: sc-2-4-7.

Assessment heuristics:

  • Tab through every screen and confirm the currently focused control is visually distinguishable in every theme.

  • Replace any CSS or toolkit override that suppresses the default focus ring with an equivalent or stronger indicator.

  • Confirm focus visibility on custom controls, embedded WebViews, and surfaces that override platform rendering.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-3-1-1

11.3.1.1 Language of software

The default human language of each application shall be programmatically determinable so AT (and especially screen readers) can select the correct pronunciation, voice, and braille table. The platform locale or accessibility-API language attribute shall reflect the language actually rendered.

Applies to: UI language setting reported through the accessibility API or platform locale.

WCAG cross-reference: sc-3-1-1.

Assessment heuristics:

  • Confirm the application sets a language attribute that AT can query (platform locale, NSLocale, setLanguage, UIA LocalizedControlType).

  • When the user switches in-app language, verify the AT-readable language attribute updates accordingly.

  • Test with a non-default-language screen reader voice and confirm pronunciation matches the rendered content.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-3-2-1

11.3.2.1 On focus

Receiving focus on a UI component shall not trigger a change of context (opening a new window, moving focus elsewhere, submitting a form, navigating to a different view). Focus shall be a passive event from the user's point of view.

Applies to: Application predictable behavior on focus events.

WCAG cross-reference: sc-3-2-1.

Assessment heuristics:

  • Tab through every control and confirm nothing opens, closes, navigates, or submits purely on focus.

  • Audit auto-focusing behaviors on dialog open and confirm they reposition focus only, without triggering side effects.

  • Verify dropdown menus do not commit selection on focus alone — selection must require an explicit activation key.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-3-2-2

11.3.2.2 On input

Changing the value or state of a UI control shall not automatically cause a change of context unless the user has been advised of the behavior before interacting. Combo-box selection, radio-button toggling, and text entry shall not auto-submit or auto-navigate without explicit warning.

Applies to: Application input behavior on value-change events.

WCAG cross-reference: sc-3-2-2.

Assessment heuristics:

  • Change every control's value and confirm no context change occurs unless the user activates a separate submit affordance.

  • When auto-submit is essential, surface a visible and AT-announced warning before the user interacts.

  • Verify combo-boxes and listboxes only commit selection on enter or activate, not on highlight.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-3-3-1

11.3.3.1 Error identification

When an input error is automatically detected in the application, the item in error shall be identified and the error shall be described to the user in text rendered both visually and through the accessibility API. Coloring the field alone or relying on iconography alone is insufficient.

Applies to: Application error messages on form validation, command failures, and constraint violations.

WCAG cross-reference: sc-3-3-1.

Assessment heuristics:

  • Trigger each validation error and confirm a text message identifies both the field and the nature of the problem.

  • Verify AT announces the error (via aria-describedby equivalent, accessible description, or live-region equivalent).

  • Confirm focus or AT attention is directed to the first errored field after submission.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-3-3-2

11.3.3.2 Labels or instructions

When the application requires user input, labels or instructions shall be provided so the user knows what data is expected, the required format, and any constraints. Placeholder-only labeling is insufficient because placeholder text disappears on focus and is unreliable through AT.

Applies to: Application guidance — input field labels, format hints, required-field markers, help text.

WCAG cross-reference: sc-3-3-2.

Assessment heuristics:

  • Confirm every input has a persistent visible label programmatically associated with the field.

  • Surface format constraints (date pattern, length, character set) before the user submits.

  • Mark required fields with both a visible indicator and an AT-readable required state.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-4-1-2

11.4.1.2 Name, role, value

For every UI component in the application, the name and role shall be programmatically determinable; states, properties, and values that can be set by the user shall be programmatically settable; and notification of changes to these items shall be available to assistive technology through the platform accessibility API.

Applies to: Application API accessibility — every focusable or interactive control, including custom-drawn widgets.

WCAG cross-reference: sc-4-1-2.

Assessment heuristics:

  • Inspect every custom control in the accessibility tree and confirm it exposes role, name, value, and state through the platform API rather than as visual-only attributes.

  • Verify state changes (expanded/collapsed, checked/unchecked, selected/unselected) fire accessibility events.

  • Walk the UI with a screen reader and confirm role announcements match the rendered control type.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-11-4-1-3

11.4.1.3 Status messages

Status messages that inform the user of success, progress, or other non-modal state shall be programmatically determinable through role or properties so AT can present them without requiring the user to move focus to the message.

Applies to: Application state changes — toast notifications, progress updates, validation summaries, save confirmations.

WCAG cross-reference: sc-4-1-3.

Assessment heuristics:

  • Mark non-modal status surfaces with the platform's live-region or notification role so AT announces them automatically.

  • Verify progress, success, and warning messages reach AT without stealing keyboard focus.

  • Confirm transient toasts persist long enough to be announced and inspected, or offer a history surface.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

Clause 12: Documentation and Support Services

Clause 12 of EN 301 549 V3.2.1 extends accessibility obligations beyond the ICT product itself and onto the documentation that accompanies it and the support services that customers rely on when something goes wrong. Sub-clauses under 12.1 govern product documentation (what features must be described and what accessibility properties the documentation itself must satisfy), and sub-clauses under 12.2 govern the support channel (what accessibility information support agents must surface, how the support channel must accommodate users with disabilities, and what accessibility properties any documentation handed out through support must satisfy).

Source: ETSI / CEN / CENELEC, EN 301 549 V3.2.1, Clause 12, https://www.etsi.org/deliver/etsi_en/301500_301599/301549/. Summaries below are paraphrased; consult the official document for normative wording.

clause-12-1-1

12.1.1 Accessibility and compatibility features

Product documentation shall describe the accessibility and compatibility features that the ICT exposes, including how to activate each feature, the configuration options it offers, any known limitations, and the assistive technologies the product has been tested with. The description shall be discoverable rather than buried as a footnote, so a user evaluating the product can locate the accessibility coverage without prior knowledge of the feature names.

Applies to: Feature documentation that ships with the product (printed manuals, in-product help, online documentation portals, release notes, conformance reports).

WCAG cross-reference: n/a (documentation-content requirement; not a UI behaviour rule).

Assessment heuristics:

  • Inventory every accessibility feature the product exposes and confirm each one is documented with activation steps, configuration options, and limitations.

  • Verify the documentation lists the assistive technologies the product has been validated against and the platform versions used during validation.

  • Confirm the accessibility section is discoverable from the documentation entry points (table of contents, search index, on-product help launcher).

  • Cross-check the documentation against the product accessibility conformance report so that no feature claimed in conformance is missing from user-facing documentation.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-12-1-2

12.1.2 Accessible documentation

The product documentation itself shall meet accessibility requirements equivalent to those that apply to the product. Web-delivered help shall meet the Clause 9 web requirements, downloadable documents shall meet the Clause 10 non-web document requirements, and in-product software help shall meet the Clause 11 software requirements. Inaccessible-only delivery (for example, scanned-image PDFs or video tutorials without captions and transcripts) does not satisfy the clause.

Applies to: Help content in every form the product ships it (HTML help portals, downloadable PDFs, embedded software help, printed manuals with electronic counterparts, video tutorials, in-product tooltips, getting-started guides).

WCAG cross-reference: n/a (clause defers to Clauses 9, 10, and 11 by reference rather than naming a specific WCAG SC).

Assessment heuristics:

  • Pick the documentation delivery medium (web, document, software) and apply the corresponding clause group's reference file as the assessment checklist.

  • Confirm video tutorials carry captions, transcripts, and audio descriptions where the visual track conveys information.

  • Verify downloadable PDFs are tagged, contain real text rather than scanned images, and pass a tagged-PDF accessibility check.

  • Confirm in-product help is reachable by keyboard, exposed to platform accessibility APIs, and respects user-configured text size and contrast settings.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-12-2-2

12.2.2 Information on accessibility and compatibility features

Support services shall be able to surface the same accessibility and compatibility feature information that Clause 12.1.1 places in product documentation. A user who contacts support shall be able to obtain a description of the available accessibility features, activation procedures, known limitations, and supported assistive technologies through the support channel rather than being redirected to documentation they may not be able to read.

Applies to: Support information surfaces (help-desk scripts, knowledge-base articles consumed by agents, chatbot responses, support portal landing pages, FAQ entries).

WCAG cross-reference: n/a (support-content requirement; not a UI behaviour rule).

Assessment heuristics:

  • Confirm front-line support agents have a knowledge-base entry that summarises every accessibility feature with activation steps and known limitations.

  • Verify the support portal lists the supported assistive technologies and links into the conformance report.

  • Spot-check support transcripts to confirm accessibility questions receive substantive answers rather than redirects.

  • Confirm that automated support channels (chatbots, IVR menus) recognise accessibility-related intents and route them to the correct knowledge entry or agent.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-12-2-3

12.2.3 Effective communication

Support services shall accommodate the communication needs of users with disabilities so that a user can request and receive support through a channel they can actually operate. The provider shall offer alternatives to voice-only telephony — for example, real-time text, TTY, video relay or sign-language interpretation, web chat, and email — and shall accept calls placed through telecommunications relay services without dropping or restricting them.

Applies to: Live support channels (telephone help desks, video support, web chat, email queues, in-person support counters) and the routing logic that delivers user contacts to those channels.

WCAG cross-reference: n/a (service-delivery requirement; not a UI behaviour rule).

Assessment heuristics:

  • Confirm support is reachable through at least one text-based channel (web chat, email, SMS, or RTT) in addition to voice telephony.

  • Verify support phone lines accept inbound relay-service calls and that agents are trained on relay protocol.

  • Confirm video support offers captioning and, where the product market includes sign-language users, a sign-language interpretation option.

  • Compare response-time service levels across channels and confirm the accessible channels are not deprioritised.

  • Train support agents on accessibility-aware communication (plain language, willingness to repeat or rephrase, awareness of assistive-technology constraints).

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

clause-12-2-4

12.2.4 Accessible documentation

Documentation handed to users through the support channel — knowledge-base articles, troubleshooting guides, follow-up emails, attachments, recorded training sessions — shall itself meet the accessibility requirements of the medium in which it is delivered. Web-delivered support content shall meet Clause 9, downloadable attachments shall meet Clause 10, and software-embedded help shall meet Clause 11; the support channel does not get a documentation accessibility exemption that the product documentation does not also enjoy.

Applies to: Support-delivered materials in every form (web knowledge-base articles, PDF guides emailed to users, screenshots and diagrams attached to tickets, recorded webinars and tutorials, transcripts).

WCAG cross-reference: n/a (clause defers to Clauses 9, 10, and 11 by reference rather than naming a specific WCAG SC).

Assessment heuristics:

  • Apply the relevant clause-group reference file (9, 10, or 11) to every documentation artefact the support team distributes.

  • Confirm that screenshots and diagrams attached to tickets carry alt text or are accompanied by a text description.

  • Verify recorded webinars carry captions and that transcripts are offered alongside on-demand recordings.

  • Confirm follow-up emails are sent as accessible HTML or plain text rather than as image-only graphics, and that any attached PDFs are tagged.

  • Audit the support knowledge base on a regular cadence using the same accessibility tooling applied to the main product documentation.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/

Clause 13: ICT Providing Relay or Emergency Services

Clause 13 of EN 301 549 V3.2.1 covers ICT that provides telecommunications relay services (bridging users with different communication modes) and ICT that provides access to public emergency services. The sub-clauses bind both the relay or emergency endpoint and the originating ICT to interoperability obligations so that users who depend on text, video, or assistive communication paths reach the same services on the same terms as voice users.

Source: ETSI / CEN / CENELEC, EN 301 549 V3.2.1, Clause 13, https://www.etsi.org/deliver/etsi_en/301500_301599/301549/. Summaries below are paraphrased; consult the official document for normative wording.

clause-13-1

13.1 Relay services requirements

ICT that is intended to provide a relay service shall convert between the communication modes of the people on each side of the call. Text relay (13.1.2) converts between text and speech, sign relay (13.1.3) between sign language and speech or text, lip-reading relay (13.1.4) supports lip-reading users, captioned telephony (13.1.5) captions the far-end speech for a user who also speaks, and speech-to-speech relay (13.1.6) re-voices speech for users whose speech is hard to understand. Clause 13.1.1 is informative.

Applies to: ICT that implements a telecommunications relay service, including relay platforms, relay operator consoles, and their user-facing clients.

WCAG cross-reference: n/a (relay-service functional requirement rather than a web success criterion).

Assessment heuristics:

  • Identify which relay types the ICT is intended to provide and assess each against its own sub-clause rather than treating relay as one capability.

  • Confirm each provided relay type converts in both directions between the two parties' modes, with no step that requires the relay user to fall back to voice.

  • Verify that the relay client's own controls (session start, mode switching, hang-up) are operable with assistive technology.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/ (Clause 13.1).

clause-13-2

13.2 Access to relay services

Where ICT supports two-way communication and is specified for use with relay services, it shall not prevent access to those relay services for incoming or outgoing calls that use voice, RTT, or video, alone or in any combination that both the relay service and the ICT support. The aim is functionally equivalent communication access for people with disabilities.

Applies to: Relay service access from ICT that supports two-way communication and is specified (by a procurer, regulator, or product specification) to work with relay services, including handsets, softphones, web calling clients, and embedded calling features.

WCAG cross-reference: n/a (relay-service interoperability requirement rather than a web success criterion).

Assessment heuristics:

  • Confirm the dial UI accepts the published relay service identifier (number, SIP URI, or equivalent) in the same field as a normal destination.

  • Verify the relay endpoint is reachable from the contacts, recents, and speed-dial surfaces, not only from a hidden settings screen.

  • Test incoming and outgoing relay calls in each supported modality (voice, RTT, video) and in the combinations the relay service accepts.

  • Walk the relay call flow with assistive technology (screen reader, switch control) to confirm initiation, in-call indicators, and termination are all operable.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/ (Clause 13.2).

clause-13-3

13.3 Access to emergency services

Where ICT supports two-way communication and is specified for use with emergency services, it shall not prevent access to those emergency services for incoming or outgoing calls that use voice, RTT, or video, alone or in any combination that both the emergency service and the ICT support. The aim is functionally equivalent access to emergency services for people with disabilities.

Applies to: Emergency service access from ICT that supports two-way communication and is specified to work with emergency services, including mobile handsets, VoIP clients, in-vehicle systems, and connected room or kiosk telephony.

WCAG cross-reference: n/a (emergency-service interoperability requirement rather than a web success criterion).

Assessment heuristics:

  • Place test emergency calls (against a test endpoint or in a regulator-approved test environment) from each supported modality (voice, RTT, video) and confirm the call reaches an appropriately equipped answering point with the chosen modality intact.

  • Verify that no gateway silently downgrades RTT or video to a less accessible form, and that voice and RTT can run on the same call where the answering point accepts both.

  • Confirm that location and caller-identification data required by the local emergency framework accompanies text and video calls as well as voice calls.

  • Verify the emergency call path is reachable from a lock screen or restricted state where regulation permits, and that account-state restrictions (no SIM, prepaid balance, parental controls) do not block it.

  • Document the supported emergency modalities, the regions in which they have been validated, and any known conditions in which fallback occurs.

Source: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/ (Clause 13.3).

Requirements and compatibility

Written for: GitHub Copilot, Claude Code

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Claude Code frontmatter, Needs Python, Needs Node.js

The author says: Requires Python 3.11+ and uv; the scanner additionally needs Node.js and network access to fetch the pinned axe-core CLI from the public npm registry.

Security

What our scanner noticed· Low risk

  • Instructions that use the network
  • Scripts that your agent may run

This skill includes scripts that your agent may run. Read them before you use it.

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
Microsoft
Publisher
Microsoft (Official)
Source
microsoft/hve-core · .github/skills/accessibility/accessibility · commit f425e94
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Microsoft.

Get it from the source

1 of this skill’s files are not mirrored here, so there is no ZIP. Get the complete skill from its source: microsoft/hve-core