This is an example. Riverside Bakery is a fictional business. The findings are common barriers we see on real sites, written exactly the way a CodexMotive manual audit reports them.

Accessibility audit: Riverside Bakery online ordering

Standard
WCAG 2.2 AA, which covers AODA's WCAG 2.0 AA requirement
Scope
Home, Menu, the 3-step Order form, and Order confirmation: 6 pages and screens
Tested with
Keyboard only; NVDA with Firefox and JAWS with Chrome on Windows; VoiceOver with Safari on iPhone; 200% and 400% zoom; axe DevTools

Summary

People can browse the menu with a keyboard or a screen reader, but they can't finish an order. Two barriers stop them: the pickup time can't be chosen without a mouse (RB-01), and form errors are silent to screen readers (RB-02). Fix those first. Together with RB-03, they are the difference between "hard to use" and "can't use".

  • Critical 2
  • Serious 3
  • Moderate 2
  • Minor 1

6 of the 8 findings fail WCAG 2.0 AA, the AODA legal baseline. The other 2 fail criteria added in WCAG 2.1 and 2.2.

Findings

  1. RB-01 Critical

    Keyboard users can't choose a pickup time, so they can't order.

    Where
    Order form, step 2 (Pickup), the "Pickup time" picker
    Who it affects
    Keyboard users, switch users, and screen reader users
    What we found
    Pressing Tab moves from "Pickup date" straight to "Continue", skipping the time picker. The picker is a styled <div> that opens on mouse click only. With NVDA, the picker is not announced at all. "Continue" then shows "Choose a pickup time", and the order cannot go further.
    How to fix it
    Use a native <select> for the time. If the custom look must stay, build it as a listbox that can be focused and operated with the arrow keys, Enter and Escape.
    <label for="pickup-time">Pickup time</label>
    <select id="pickup-time" name="pickupTime">
      <option>9:00 am</option>
      <option>9:30 am</option>
    </select>
    WCAG
    2.1.1 Keyboard (Level A). Part of WCAG 2.0 AA, the AODA baseline.
  2. RB-02 Critical

    Form errors aren't announced, so screen reader users don't know why nothing happened.

    Where
    Order form, step 3 (Details), after pressing "Place order"
    Who it affects
    Screen reader users, and people with low vision using magnification
    What we found
    With the phone field left empty, pressing "Place order" shows a red message at the top of the form. Focus stays on the button, and NVDA and VoiceOver say nothing. At 200% zoom the message is off screen.
    How to fix it
    On submit, move focus to an error summary at the top of the form that links to each field with a problem. Connect each inline error to its field with aria-describedby, and mark the field aria-invalid="true".
    <input id="phone" aria-invalid="true" aria-describedby="phone-error">
    <p id="phone-error">Enter a phone number so we can reach you about your order.</p>
    WCAG
    3.3.1 Error Identification (Level A). Part of WCAG 2.0 AA, the AODA baseline.
  3. RB-03 Serious

    The quantity buttons are announced only as "button".

    Where
    Menu page, the minus and plus buttons on every product
    Who it affects
    Screen reader users, and voice control users
    What we found
    NVDA reads every one of these controls as "button", with no name. VoiceOver reads "minus" and "plus" from the icon file name, but not which product they change. Voice control users can't say "click increase sourdough".
    How to fix it
    Give each button a name that includes the product, and announce the new quantity.
    <button type="button" aria-label="Increase quantity of Sourdough loaf">+</button>
    <span aria-live="polite">Sourdough loaf: 2</span>
    WCAG
    4.1.2 Name, Role, Value (Level A). Part of WCAG 2.0 AA, the AODA baseline.
  4. RB-04 Serious

    Keyboard focus disappears behind the sticky cart bar.

    Where
    Menu page, the bar fixed to the bottom of the screen
    Who it affects
    Keyboard users, and people with low vision
    What we found
    Tabbing down the menu, the focused "Add to order" button slides under the cart bar at the bottom of the window. For three or four Tab presses in each row, there is no visible focus.
    How to fix it
    Reserve space for the bar so focused elements are scrolled clear of it.
    html {
      scroll-padding-bottom: 88px; /* height of the cart bar */
    }
    WCAG
    2.4.11 Focus Not Obscured (Minimum) (Level AA). Added after WCAG 2.0.
  5. RB-05 Serious

    At 400% zoom the menu scrolls sideways, and prices are cut off.

    Where
    Menu page, the product grid
    Who it affects
    People with low vision who zoom in
    What we found
    At 1280px wide and 400% zoom (the same as a 320px screen), the grid keeps three fixed-width columns. Reading each row means scrolling left and right, and the price column is cut off at the right edge.
    How to fix it
    Let the grid reflow to one column at narrow widths. Remove fixed widths on the product cards.
    .menu-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
    }
    WCAG
    1.4.10 Reflow (Level AA). Added after WCAG 2.0.
  6. RB-06 Moderate

    Product photos are announced by their file names.

    Where
    Menu page, every product photo
    Who it affects
    Screen reader users
    What we found
    NVDA reads "IMG underscore 2041 dot jpg" before each product name. The product name is already written next to each photo, so the file name only adds noise.
    How to fix it
    The photos repeat the visible product name, so mark them as decorative with an empty alt attribute.
    <img src="sourdough.jpg" alt="">
    WCAG
    1.1.1 Non-text Content (Level A). Part of WCAG 2.0 AA, the AODA baseline.
  7. RB-07 Moderate

    "Sold out" is shown only by greying out the product.

    Where
    Menu page, sold-out products
    Who it affects
    People who are colour blind or have low vision, and screen reader users
    What we found
    Sold-out products turn light grey. There is no text, and the "Add to order" button still works but then fails silently.
    How to fix it
    Add a visible "Sold out" label, and disable the button with a reason people can see and hear.
    WCAG
    1.4.1 Use of Color (Level A). Part of WCAG 2.0 AA, the AODA baseline.
  8. RB-08 Minor

    The footer links are hard to read against the background.

    Where
    Every page, the footer
    Who it affects
    People with low vision
    What we found
    The footer links are light grey on white, measured at 3.2:1. Body-size text needs 4.5:1.
    How to fix it
    Darken the link colour to at least 4.5:1 against the footer background.
    WCAG
    1.4.3 Contrast (Minimum) (Level AA). Part of WCAG 2.0 AA, the AODA baseline.

What a real report adds

  • A walkthrough call, so your developers can ask about any finding.
  • One re-test after your fixes, within 90 days of delivery, and an updated report showing what is fixed and what is still open.
  • The report as a PDF and a spreadsheet, so findings can go straight into your tracker.
  • Findings written against your own pages and code, in the order to fix them.