Skip to content
StoreA11y

Reference

Accessibility fixes, by rule

Hand-written instructions for 47 accessibility rules, mapped to the theme file each one lives in on Shopify and WooCommerce.

Every rule below is checked by the scan. The ones marked as frequently litigated are the defects that appear repeatedly in filed US complaints, and they carry the most weight in the report’s priority ranking.

  • ARIA roles missing their required attributes

    aria-required-attr

    4.1.2 Name, Role, Value (Level A) · frequently litigated

    ShopifyWooCommerce

  • Buttons with no accessible name

    button-name

    4.1.2 Name, Role, Value (Level A) · frequently litigated

    ShopifyWooCommerce

  • Content sits outside any landmark region

    region

    1.3.1 Info and Relationships (Level A) · frequently litigated

    ShopifyWooCommerce

  • Embedded frames with no title

    frame-title

    2.4.1 Bypass Blocks (Level A) · frequently litigated

    ShopifyWooCommerce

  • Focusable elements have no interactive role

    focus-order-semantics

    4.1.2 Name, Role, Value (Level A) · frequently litigated

    ShopifyWooCommerce

  • Form field has more than one label

    form-field-multiple-labels

    3.3.2 Labels or Instructions (Level A) · frequently litigated

    ShopifyWooCommerce

  • Form inputs with no label

    label

    1.3.1 Info and Relationships (Level A) · frequently litigated

    ShopifyWooCommerce

  • Images missing alternative text

    image-alt

    1.1.1 Non-text Content (Level A) · frequently litigated

    ShopifyWooCommerce

  • Links with no discernible text

    link-name

    2.4.4 Link Purpose (In Context) (Level A) · frequently litigated

    ShopifyWooCommerce

  • No way to skip repeated navigation

    bypass

    2.4.1 Bypass Blocks (Level A) · frequently litigated

    ShopifyWooCommerce

  • Page does not declare a language

    html-has-lang

    3.1.1 Language of Page (Level A) · frequently litigated

    ShopifyWooCommerce

  • Text colour does not contrast enough with its background

    color-contrast

    1.4.3 Contrast (Minimum) (Level AA) · frequently litigated

    ShopifyWooCommerce

  • Video has no captions

    video-caption

    1.2.2 Captions (Prerecorded) (Level A) · frequently litigated

    ShopifyWooCommerce

  • <object> embeds have no text alternative

    object-alt

    1.1.1 Non-text Content (Level A)

    ShopifyWooCommerce

  • ARIA attributes have invalid values

    aria-valid-attr-value

    4.1.2 Name, Role, Value (Level A)

    ShopifyWooCommerce

  • ARIA attributes not allowed on this element

    aria-allowed-attr

    4.1.2 Name, Role, Value (Level A)

    ShopifyWooCommerce

  • ARIA attributes used where they are forbidden

    aria-prohibited-attr

    4.1.2 Name, Role, Value (Level A)

    ShopifyWooCommerce

  • ARIA input fields with no accessible name

    aria-input-field-name

    4.1.2 Name, Role, Value (Level A)

    ShopifyWooCommerce

  • ARIA roles missing their required child roles

    aria-required-children

    1.3.1 Info and Relationships (Level A)

    ShopifyWooCommerce

  • ARIA roles not inside their required parent

    aria-required-parent

    1.3.1 Info and Relationships (Level A)

    ShopifyWooCommerce

  • Autocomplete attributes are invalid

    autocomplete-valid

    1.3.5 Identify Input Purpose (Level AA)

    ShopifyWooCommerce

  • Blinking content is present

    blink

    2.2.2 Pause, Stop, Hide (Level A)

    ShopifyWooCommerce

  • Definition lists are structured incorrectly

    definition-list

    1.3.1 Info and Relationships (Level A)

    ShopifyWooCommerce

  • Dropdown menus with no accessible name

    select-name

    4.1.2 Name, Role, Value (Level A)

    ShopifyWooCommerce

  • Elements with role="img" have no accessible name

    role-img-alt

    1.1.1 Non-text Content (Level A)

    ShopifyWooCommerce

  • Headings skip levels

    heading-order

    1.3.1 Info and Relationships (Level A)

    ShopifyWooCommerce

  • Headings with no text

    empty-heading

    1.3.1 Info and Relationships (Level A)

    ShopifyWooCommerce

  • Hidden elements can still be focused

    aria-hidden-focus

    4.1.2 Name, Role, Value (Level A)

    ShopifyWooCommerce

  • Image buttons have no alternative text

    input-image-alt

    1.1.1 Non-text Content (Level A)

    ShopifyWooCommerce

  • Input buttons with no value or name

    input-button-name

    4.1.2 Name, Role, Value (Level A)

    ShopifyWooCommerce

  • Interactive controls nested inside each other

    nested-interactive

    4.1.2 Name, Role, Value (Level A)

    ShopifyWooCommerce

  • Invalid ARIA role values

    aria-roles

    4.1.2 Name, Role, Value (Level A)

    ShopifyWooCommerce

  • Links in body text are distinguished by colour alone

    link-in-text-block

    1.4.1 Use of Color (Level A)

    ShopifyWooCommerce

  • List items outside a list

    listitem

    1.3.1 Info and Relationships (Level A)

    ShopifyWooCommerce

  • Lists contain elements that are not list items

    list

    1.3.1 Info and Relationships (Level A)

    ShopifyWooCommerce

  • Page has no level-one heading

    page-has-heading-one

    1.3.1 Info and Relationships (Level A)

    ShopifyWooCommerce

  • Page has no main landmark

    landmark-one-main

    1.3.1 Info and Relationships (Level A)

    ShopifyWooCommerce

  • Page has no title

    document-title

    2.4.2 Page Titled (Level A)

    ShopifyWooCommerce

  • Page language code is not valid

    html-lang-valid

    3.1.1 Language of Page (Level A)

    ShopifyWooCommerce

  • Scrollable areas cannot be reached by keyboard

    scrollable-region-focusable

    2.1.1 Keyboard (Level A)

    ShopifyWooCommerce

  • Scrolling marquee content is present

    marquee

    2.2.2 Pause, Stop, Hide (Level A)

    ShopifyWooCommerce

  • Server-side image maps are in use

    server-side-image-map

    2.1.1 Keyboard (Level A)

    ShopifyWooCommerce

  • Table cells reference headers that do not exist

    td-headers-attr

    1.3.1 Info and Relationships (Level A)

    ShopifyWooCommerce

  • Table headers are not associated with any data

    th-has-data-cells

    1.3.1 Info and Relationships (Level A)

    ShopifyWooCommerce

  • Tap targets are too small or too close together

    target-size

    2.5.8 Target Size (Minimum) (Level AA, WCAG 2.2)

    ShopifyWooCommerce

  • The same id is used on more than one interactive element

    duplicate-id-active

    4.1.1 Parsing (Level A)

    ShopifyWooCommerce

  • Zoom is disabled on mobile

    meta-viewport

    1.4.4 Resize Text (Level AA)

    ShopifyWooCommerce