A sample Store Risk Check

Illustrative. Harbor Outfitters is a made-up store, checked the way we check yours. Every count and finding below was written to show the report's form. None describes a real store.

Summary

11 findings: 3 stop a sale, 5 cost one, and 3 can wait.

Illustrative. Ranked by what each costs the store, with the evidence for each. No score: counts with their denominators.

  1. Pages checked: 9

    The home page, 2 collection pages, 4 product pages, the cart, and checkout up to payment.

  2. Accessibility: 7 findings

    Against WCAG 2.2 AA, on the 9 pages.

  3. Product data: 3 findings

    190 of 194 products read.

  4. Store policies: 1 finding

    The 4 policy pages, the footer, the FAQ page, and Merchant Center's return and shipping settings.

Ranked fix list

Stops a sale

  1. 1. The cart's quantity buttons have no names.

    Accessibility · WCAG 2.2, 4.1.2 Name, Role, Value (A) · Cart

    What we saw. With 3 items in the cart, 6 of 6 quantity buttons are read only as "button" by VoiceOver on iPhone and by NVDA. A screen-reader user cannot tell which button lowers a quantity, or which item it belongs to.

    The fix. Name each button with its action and its product, such as "Decrease quantity, Harbor Jacket", in the theme's cart snippet. Effort: small.

  2. 2. The size and color swatches can't be reached by keyboard.

    Accessibility · WCAG 2.2, 2.1.1 Keyboard (A) · 4 of 4 product pages

    What we saw. Tab moves from the product title straight to Add to cart, skipping all 9 swatches on the Harbor Jacket page. The swatches are clickable boxes, not controls.

    The fix. Rebuild the variant picker as a radio group, which a keyboard and a screen reader both understand. Effort: medium.

  3. 3. 31 products are disapproved for a missing GTIN.

    Product data · Merchant Center, unique product identifiers · 38 of 190 products

    What we saw. 38 of 190 products have no GTIN in their structured data or their feed. In Merchant Center, 31 of those 38 are disapproved for it. The other 7 are made to order and correctly marked as having none.

    The fix. GTINs from the supplier's sheet, each check digit verified, none invented. Google then re-reviews the items on its own schedule. Effort: medium.

Costs a sale

  1. 4. The return window disagrees with itself.

    Store policies · Your own policies and Merchant Center's return settings · 4 places

    What we saw. 30 days in the footer and on the FAQ page. 14 days in the refund policy and in Merchant Center's return policy settings.

    The fix. Choose one window, then change all four places on the same day. Effort: small.

  2. 5. Sale prices fail contrast.

    Accessibility · WCAG 2.2, 1.4.3 Contrast (Minimum) (AA) · 24 of 190 product cards

    What we saw. The sale price is light gray (#999999) on white: a contrast of 2.85:1 against the 4.5:1 minimum, on every card with a sale, 24 of 190.

    The fix. Darken the theme's sale-price color to #767676 or darker (4.54:1). Effort: small.

  3. 6. Images on the home page have no text alternative.

    Accessibility · WCAG 2.2, 1.1.1 Non-text Content (A) · Home

    What we saw. 14 of 22 images have none. 5 of the 14 are the collection tiles, which are links, so a screen reader announces each tile's file name.

    The fix. Text for the images that carry meaning, an empty alternative for the decorative ones, and a name for each of the 5 links. Effort: small.

  4. 7. The sticky Add to cart bar hides what has focus.

    Accessibility · WCAG 2.2, 2.4.11 Focus Not Obscured (Minimum) (AA, new in 2.2) · 4 of 4 product pages

    What we saw. At 390 pixels wide, tabbing to the size guide link and to the reviews link puts each one entirely under the sticky bar.

    The fix. Scroll padding equal to the bar's height, so a focused element always lands above it. Effort: small.

  5. 8. 6 sale prices are missing from the structured data.

    Product data · Page, markup and feed should agree · 6 of 190 products

    What we saw. The page shows the sale price. The page's Product markup still states the full price.

    The fix. The theme's markup reads the variant's current price. Effort: small.

Fix when you can

  1. 9. The swatches are smaller than the minimum target.

    Accessibility · WCAG 2.2, 2.5.8 Target Size (Minimum) (AA, new in 2.2) · 4 of 4 product pages

    What we saw. Each swatch is 18 × 18 CSS pixels, with 4 pixels between them.

    The fix. 24 × 24 targets, built into the radio group from finding 2. Effort: small, with finding 2.

  2. 10. 52 main product images are under 500 × 500 pixels.

    Product data · Merchant Center's image minimum from January 31, 2027 · 52 of 190 products

    What we saw. 52 of 190 main images are smaller than 500 × 500 pixels. A larger original is on file for 43 of them. 9 need a new photo.

    The fix. Re-export the 43 from their originals, and reshoot the 9. Effort: medium.

  3. 11. Errors in the newsletter sign-up aren't announced.

    Accessibility · WCAG 2.2, 3.3.1 Error Identification (A) and 4.1.3 Status Messages (AA) · The footer, on 9 of 9 pages

    What we saw. An invalid email address shows red text that NVDA does not read, and the field is not marked invalid.

    The fix. Tie the message to the field, and mark the field invalid while the message shows. Effort: small.

What we could not read

  • 4 of 194 products: unknown.They sit in a password-protected wholesale collection. Unknown is not a pass.
  • Checkout's payment step: not tested.We test checkout up to payment and never place an order on your store.

How we checked

  • A keyboard first.Every page, keyboard only, in Safari and in Chrome.
  • Then a screen reader.VoiceOver on Mac and iPhone, and NVDA with Firefox on Windows.
  • An automated pass, then a person.The scan finds the first layer. A person checks every page.
  • Product data from three places.Each product page, its structured data, and Merchant Center through read-only access.

What comes with it.

A quote for a Fix & Prove Sprint that fixes the list, if you want one, with the check's $2,500 credited within 30 days. Illustrative, and information, not legal advice.