W3C & WCAG Reference

SVG Accessibility & WCAG Standards Glossary

An authoritative reference of 30+ crucial terms in vector accessibility, WAI-ARIA roles, WCAG 2.2 AA / AAA criteria, and assistive technology engine behaviors.

1. WAI-ARIA Attributes Core ARIA
aria-hidden aria-hidden="true"

An attribute that completely removes an element and all its children from the Accessibility Tree. Used on decorative icons paired with adjacent text labels so screen readers do not announce redundant symbols.

<button><svg aria-hidden="true">...</svg> Save</button>
aria-label aria-label="string"

Provides an invisible string label to assistive tech. Essential for standalone icon buttons (e.g. a trash icon with no visible text) to compute its accessible name.

<button aria-label="Delete permanent record"><svg aria-hidden="true">...</svg></button>
aria-labelledby aria-labelledby="id"

References the ID of one or more existing DOM elements (including internal SVG <title id="...">) to assign an accessible name. Takes precedence over aria-label in the AccName algorithm.

<svg role="img" aria-labelledby="t1"><title id="t1">Analytics Trends</title>...</svg>
aria-describedby aria-describedby="id"

Links an SVG to a secondary description (such as an internal <desc id="..."> or external tooltip) that screen readers announce after the element's primary accessible name.

aria-live aria-live="polite|assertive"

Instructs screen readers to dynamically announce state changes when an icon morphs (e.g. a syncing spinner icon changing to a green checkmark upon completion).

aria-expanded aria-expanded="true|false"

Indicates to assistive technology whether a collapsible UI element (like an accordion chevron icon) is currently opened or closed.

2. SVG Semantic Roles & Tags DOM Structure
role="img" role="img"

Explicit ARIA role telling screen readers to treat the complex nested SVG DOM tree (paths, circles, groups) as a single cohesive graphical unit rather than a collection of disparate geometry elements.

<title> Element <title>

The primary accessibility title element inside an SVG. When assigned an ID and linked via aria-labelledby, it supplies the accessible name to screen readers and displays native browser hover tooltips.

<desc> Element <desc>

Provides a longer, detailed description for complex vector charts, diagrams, or infographic icons. Tied to assistive tech via aria-describedby.

focusable="false" focusable="false"

An SVG-specific attribute historically required by Internet Explorer and legacy WebKit engines to prevent keyboard Tab focus from getting trapped on inline SVG nodes.

tabindex tabindex="0|-1"

Controls keyboard focusability. Standalone interactive SVGs should receive tabindex="0" or preferably be wrapped inside a semantic native <button> element.

3. WCAG 2.2 Success Criteria for Icons Compliance
WCAG 1.1.1: Non-Text Content (Level A)

Requires all non-text content (icons, diagrams, symbols) that conveys meaning to have a text alternative that serves an equivalent purpose. Purely decorative icons must be hidden from assistive tech.

WCAG 1.4.11: Non-Text Contrast (Level AA)

Requires visual information needed to identify UI components (active icon buttons, checkboxes, status icons) to have a contrast ratio of at least 3:1 against adjacent background colors.

WCAG 1.4.3: Contrast Minimum (Level AA)

Requires text labels paired with icons to maintain at least 4.5:1 contrast for normal body text and 3:1 for large typography.

WCAG 2.5.5 / 2.5.8: Target Size (Minimum)

Requires interactive touch targets (icon buttons) to have a minimum interactive bounding box of at least 24×24 CSS pixels (Level AA) or 48×48 CSS pixels (Level AAA).

WCAG 2.3.3: Animation from Interactions (Level AAA)

Requires micro-interaction animations on icons (e.g. spinning or bouncing on hover) to be disableable or automatically disabled under prefers-reduced-motion: reduce.

4. Assistive Technology & OS Features Engine Behavior
Accessible Name Computation (AccName)

The standardized W3C algorithmic sequence browsers use to determine what text to announce for an element. For icons, it evaluates aria-labelledbyaria-label<title> → fallback text.

Accessibility Tree

A parallel browser document tree that strips layout styles and represents only the accessibility objects, roles, and states exposed to OS screen readers (VoiceOver, NVDA, JAWS).

forced-colors: active (High Contrast Mode)

A CSS media feature detecting Windows Contrast Mode. Icons using fill: currentColor or stroke: currentColor adapt automatically, while hardcoded hex colors disappear or clash.

@media (forced-colors: active) { .icon { stroke: CanvasText; } }
prefers-reduced-motion

A media query detecting user OS settings requesting minimal animations to avoid vestibular motion sickness or vertigo during UI state transitions.

Virtual Buffer

The internal memory model screen readers (like NVDA/JAWS) use to read through web pages line by line. Proper SVG hiding prevents virtual buffer clutter.

Ready to Build Accessible Icon Interfaces?

Search 134,000+ open-source SVG icons across 28 curated libraries on IconStash. Fast, clean, and 100% accessible.

Search All 134K+ Icons →