APG Patterns

APG Patterns

Accessible component patterns based on WAI-ARIA Authoring Practices Guide. Each pattern is implemented in React, Vue, Svelte, and Astro.

πŸ“‹

Accordion

A vertically stacked set of interactive headings that each reveal a section of content.

Complexity: Medium
πŸ”˜

Button

A widget that enables users to trigger an action or event, such as submitting a form or toggling a state.

Complexity: Low
πŸ’¬

Dialog (Modal)

A window overlaid on the primary window, rendering the content underneath inert.

Complexity: High
🎚️

Switch

A type of checkbox that represents on/off values, as opposed to checked/unchecked.

Complexity: Low
πŸ“‘

Tabs

A set of layered sections of content, known as tab panels, that display one panel at a time.

Complexity: Medium
πŸ”§

Toolbar

A container for grouping a set of controls, such as buttons, toggle buttons, or checkboxes.

Complexity: Medium
πŸ’‘

Tooltip

A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.

Complexity: Medium
⚠️

Alert

An element that displays a brief, important message in a way that attracts the user's attention without interrupting the user's task.

Complexity: Low
🚨

Alert Dialog

Planned

A modal dialog that interrupts the user's workflow to communicate an important message and acquire a response.

Complexity: High
πŸ”—

Breadcrumb

Planned

A list of links to the parent pages of the current page in hierarchical order.

Complexity: Low
🎠

Carousel

Planned

Presents a set of items, referred to as slides, by sequentially displaying a subset of one or more slides.

Complexity: High
β˜‘οΈ

Checkbox

Planned

Supports dual-state (checked/unchecked) and tri-state (checked/unchecked/partially checked) checkboxes.

Complexity: Low
πŸ”½

Combobox

Planned

An input widget with an associated popup that enables users to select a value from a collection.

Complexity: High
☰

Menu Button

Planned

A button that opens a menu of actions or options.

Complexity: High
β–Ό

Disclosure

Planned

A button that controls the visibility of a section of content.

Complexity: Low
πŸ“°

Feed

Planned

A section of a page that automatically loads new sections of content as the user scrolls.

Complexity: High
πŸ“Š

Grid

Planned

A container that enables users to navigate the information or interactive elements using directional navigation keys.

Complexity: High
πŸ—ΊοΈ

Landmarks

Planned

A set of eight roles that identify the major sections of a page.

Complexity: Low
↗️

Link

Planned

A widget that provides an interactive reference to a resource.

Complexity: Low
πŸ“

Listbox

Planned

A widget that allows the user to select one or more items from a list of choices.

Complexity: Medium
☰

Menu / Menubar

Planned

A widget that offers a list of choices to the user, such as a set of actions or functions.

Complexity: High
πŸ“Ά

Meter

Planned

A graphical display of a numeric value that varies within a defined range.

Complexity: Low
πŸ”˜

Radio Group

Planned

A set of checkable buttons, known as radio buttons, where only one can be checked at a time.

Complexity: Medium
🎚️

Slider

Planned

An input where the user selects a value from within a given range.

Complexity: Medium
πŸ”’

Spinbutton

Planned

An input widget for selecting from a range of discrete values, typically with increment/decrement buttons.

Complexity: Medium
πŸ“‹

Table

Planned

A static tabular structure containing one or more rows that each contain one or more cells.

Complexity: Medium
🌲

Tree View

Planned

A widget that presents a hierarchical list with nested groups that can be collapsed and expanded.

Complexity: High
πŸ“Š

Treegrid

Planned

A widget that presents a hierarchical data grid consisting of tabular information that is editable or interactive.

Complexity: High
⬛

Window Splitter

Planned

A moveable separator between two sections, or panes, that enables users to change the relative size of the panes.

Complexity: Medium

About These Patterns

Each pattern follows the WAI-ARIA Authoring Practices Guide (APG) specifications to ensure proper accessibility support.

  • Proper ARIA roles and attributes
  • Full keyboard navigation support
  • Screen reader compatibility
  • High contrast mode support
  • Reduced motion preferences