Sample · Fictional shop

Sample report

This is exactly what gets delivered, at full depth. One purchase journey audited, seven findings, each with its evidence and its fix.

Sample. Example Shop Ltd does not exist — it is a fictional shop created for this report. The findings are real patterns that appear in most e-commerce audits, but they do not describe any actual site.

55/100

Accessibility score

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

Accessibility report

Example Shop Ltd

Scope

Site assessed
Example Shop Ltd (fictional)
Scope
Journey audit — product page, cart, checkout, account
Standard
WCAG 2.2 Level AA
Method
Automated analysis plus manual keyboard and VoiceOver testing
Date of assessment
22 September 2026
Reviewer
Sergio Gualda

Summary

This score is an internal Uxerfy assessment indicator based on the checks included in this review. It is not a legal certification or a statement of WCAG conformance.

All findings

  1. 01 of 07 · /checkout/ — card and address fields

    Critical 3.3.1 Error Identification · A

    Payment form errors are not announced

    Found by: Manual

    Problem
    Submitting the form with an invalid field inserts the message into the DOM beside the field and renders it in red. It is not associated with the input via aria-describedby, the field does not receive aria-invalid, there is no live region, and focus remains on the submit button.
    Who it affects
    A screen reader user presses "Pay" and receives no signal at all. The experience is that the button does not work. In testing, the payment could not be completed.
    Recommended fix
    Associate each message with its field using aria-describedby; mark the field aria-invalid="true"; on submit, move focus to the first field in error, or render an error summary at the top of the form with links to each field.
    Acceptance criteria
    With a screen reader running, submitting the form with an invalid field announces the error and lets you reach the affected field without looking for it.
  2. 02 of 07 · /product/ — variant selector

    Critical 2.1.1 Keyboard · A

    The size selector cannot be reached by keyboard

    Found by: Manual

    Problem
    Sizes are built from <div> elements carrying a click handler. They are not focusable, do not respond to Enter or Space, and expose no role or selected state.
    Who it affects
    Without a mouse there is no way to choose a size, and without a size there is no way to add to cart. The purchase journey ends at the product page.
    Recommended fix
    Replace with a native radio group (<fieldset> with <legend> and <input type="radio">), or buttons with role="radio" and full keyboard handling. The native version brings focus, activation, role and state with no code.
    Acceptance criteria
    Using the keyboard alone, the size group can be reached, moved through with the arrow keys, a size selected, and the product added to the cart.
  3. 03 of 07 · Site-wide — tabbing down any long page

    Serious 2.4.11 Focus Not Obscured (Minimum) · AA

    Focus is hidden behind the sticky header

    Found by: Manual

    Problem
    The header is position: sticky at 72px tall. Tabbing downwards scrolls the focused element to the top edge of the viewport, where the header covers it entirely.
    Who it affects
    Keyboard users intermittently lose sight of the focused element and have to tab backwards to re-orient.
    Recommended fix
    Add scroll-margin-top: 88px to focusable elements, or scroll-padding-top on the scroll container.
    Acceptance criteria
    Tabbing down a long page leaves the focused element fully visible at every step.
  4. 04 of 07 · /product/ — gallery (6 images)

    Serious 1.1.1 Non-text Content · A

    Product images carry no useful alternative text

    Found by: Automated

    Problem
    Four of the six images use the SKU as alternative text ("SKU-4471-BLK"). Two of them carry information that appears nowhere else: the size chart and the materials list.
    Who it affects
    Information needed to make the purchase decision is available only to people who can see the images.
    Recommended fix
    Write alternative text describing what each image contributes in context. For the size chart and materials list, reproduce the content as real text on the page — a picture of a table should not be the only source of that data.
    Acceptance criteria
    With images disabled, the page still communicates the available sizes and the product composition.
  5. 05 of 07 · /product/ — colour selector

    Moderate 1.4.1 Use of Color · A

    Colour variants are distinguished by colour alone

    Found by: Manual

    Problem
    The swatches are coloured circles with no visible name and no alternative text. The selected state is indicated only by a darker border.
    Who it affects
    Anyone who cannot distinguish the colours cannot tell what they are choosing or what they have chosen.
    Recommended fix
    Add the colour name as visible text beside the swatch or as an accessible label, and mark the selected state with more than colour: a tick, a ring with sufficient contrast, or text.
    Acceptance criteria
    In greyscale, each available colour can be identified and the selected one can be told apart.
  6. 06 of 07 · Site-wide — struck-through prices, delivery notes, footer

    Moderate 1.4.3 Contrast (Minimum) · AA

    Secondary text does not meet minimum contrast

    Found by: Automated

    Problem
    The grey #9a9a9a on white gives a ratio of 2.85:1. The minimum for normal-size text is 4.5:1. It affects 14 instances across 5 templates.
    Who it affects
    People with low vision, and anyone with glare on their screen. It includes the "Free delivery over £50" line, which is commercially relevant information.
    Recommended fix
    Darken the grey to at least #767676 on white (4.54:1). Fix the secondary colour token in the design system rather than each instance.
    Acceptance criteria
    All normal-size text meets 4.5:1 against its actual background, measured on the computed colours.
  7. 07 of 07 · /account/orders/ — invoice column

    Minor 2.4.4 Link Purpose (In Context) · A

    Invoice download links do not say what they download

    Found by: Automated

    Problem
    Each row contains a link reading "Download". Listed out of context, that is twelve identical entries.
    Who it affects
    Anyone navigating by links list cannot tell one invoice from another.
    Recommended fix
    Include the order number in the link text, or add the context with visually hidden text: "Download invoice for order 4471".
    Acceptance criteria
    The links list for the page contains twelve entries that can be told apart.

What to do next

  1. 01Fix the two critical findings. Both stop a purchase completing, and neither needs anything redesigned.
  2. 02Fix the contrast at the design system token, not instance by instance — that closes all 14 occurrences at once.
  3. 03Re-test the checkout by keyboard and with a screen reader before treating anything as closed.
  4. 04Order a re-test to record what was resolved, and on what date.

Sample. Example Shop Ltd does not exist — it is a fictional shop created for this report. The findings are real patterns that appear in most e-commerce audits, but they do not describe any actual site.

Order an audit of your own site

The same report, on your site and with your findings, in 48 hours.

Regulatory requirements vary by jurisdiction, service, organisation and other factors. Uxerfy provides accessibility assessments and compliance-oriented information, not legal advice or legal certification. Consult qualified legal counsel for a determination of your obligations.