Technical Accessibility Report
Kastanje Kitchen (demo store) — October 3, 2026
Sensitivity scenario: treating the 22 unscored risk signals on scored criteria as confirmed failures would produce 63.9 / 100.
Score model v3 — only machine-verified evidence reduces this score. Not comparable to scores from earlier model versions.
Audit Scope & Limitations
This audit deep-tested 29 pages with automated tools and AI analysis, from 125 total pages discovered. Baseline pages received structural checks only.
Language versions
Language version evaluated in depth: English.
Other language versions found on the site (Dutch, French, German, Latvian) were sampled: a few pages from each were evaluated in depth to check language-specific issues, and their remaining pages received automated baseline checks. The score and findings cover every page assessed, across all language versions — the evaluated version through its full sample, sampled versions through their spot-checked pages and baseline checks.
Pages evaluated in depth per additional language version: German: 2, French: 2, Latvian: 2, Dutch: 2.
Accessibility requirements apply to every language version offered to users. Evaluating the remaining versions requires a separate assessment.
Machine-verified (scored)
Automated risk signals (not scored)
All Issues
Perceivable (4 issues)
Links must be distinguishable without relying on color
Fix any of the following: The link has insufficient color contrast of 1.06:1 with the surrounding text. (Minimum contrast is 3:1, link text: #7f54b3, surrounding text: #6d6d6d) The link has no styling (such as underline) to distinguish it from the surrounding text
a[href$="en.gravatar.com/"]
Fix Code
/* Child theme style.css, or Appearance > Customize > Additional CSS */
/* Underline links in comment text so they are identifiable without colour
(link colour #7f54b3 vs surrounding text colour #6d6d6d) */
<replace-with-comment-text-container-selector> a,
a[href="https://en.gravatar.com/"] {
text-decoration: underline;
text-decoration-thickness: 1px;
text-underline-offset: 0.15em;
}
<replace-with-comment-text-container-selector> a:hover,
<replace-with-comment-text-container-selector> a:focus,
a[href="https://en.gravatar.com/"]:hover,
a[href="https://en.gravatar.com/"]:focus {
text-decoration-thickness: 2px;
}
How to Fix
1. Open the post in a browser and inspect the 'Gravatar' link (<a href="https://en.gravatar.com/">) in DevTools. It sits inside a comment's text. 2. Find the element that wraps the comment body text (the parent of the paragraph holding the link). Replace <replace-with-comment-text-container-selector> with a selector for that wrapper. Do not use a bare 'a' selector. Scope it so buttons and navigation links are not underlined. 3. Add the CSS to the child theme's style.css or to Appearance > Customize > Additional CSS. Never edit the parent theme's stylesheet, because a theme update overwrites it. 4. The a[href="https://en.gravatar.com/"] rule fixes the reported link even before step 2 is finished. The container rule fixes every other link in comments. 5. For WooCommerce product reviews, inspect a review's text wrapper on a product page and replace <replace-with-product-review-text-selector> with it. 6. Verify: reload the page and confirm the link is underlined in its normal, hover and focus states. Re-run the axe scan.
Elements must meet minimum color contrast ratio thresholds
Fix any of the following: Element has insufficient color contrast of 2.93 (foreground color: #ffffff, background color: #00a99d, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1
#cn-accept-cookie
Fix Code
<!-- Option A (preferred): change the colour at its source so the generated markup becomes: -->
<a href="#" id="cn-accept-cookie" data-cookie-set="accept" class="cn-set-cookie cn-button" aria-label="Ok" style="background-color: #007a70">Ok</a>
<!-- Option B: if the inline style cannot be changed at its source, add this CSS to your site stylesheet.
It is scoped to the single button ID. !important is required only because it must beat the inline style attribute. -->
<style>
#cn-accept-cookie {
background-color: #007a70 !important;
color: #ffffff;
}
#cn-accept-cookie:hover,
#cn-accept-cookie:focus {
background-color: #00665e !important;
color: #ffffff;
}
#cn-accept-cookie:focus-visible {
outline: 2px solid #007a70;
outline-offset: 2px;
}
</style>
How to Fix
1. Locate where the inline style="background-color: #00a99d" on the cookie banner's "Ok" button (#cn-accept-cookie) is generated. The id and the cn-set-cookie / cn-button classes are typically output by a cookie-consent script or plugin, so look for a "button colour" setting in that tool's configuration rather than editing rendered HTML (hand edits to generated markup are overwritten). 2. Change the button background from teal #00a99d to the darker teal #007a70, keeping the white (#ffffff) text. White on #007a70 meets the WCAG 1.4.3 requirement for normal-size (13px) text, while white on #00a99d does not. 3. If the colour cannot be changed at its source, add the Option B CSS to your own site stylesheet (not to the cookie tool's own files, which updates would replace). The selector targets only #cn-accept-cookie, so no shared class or design token is affected. The !important is needed solely to override the inline style attribute. 4. The hover/focus colour #00665e is darker than #007a70, so white text stays readable in every state. The :focus-visible outline gives keyboard users a visible focus indicator. 5. If #00a99d is also used as a brand token elsewhere (for example, other buttons with white text), do not change that token globally from this fix. Check each of those usages separately, because they likely have the same contrast problem. 6. Verify by re-running the axe scan on https://samplestore.geta11y.com/de/2026 and confirming the color-contrast violation on #cn-accept-cookie is gone. Also tab to the button to check the focus style is visible.
Pages affected: 96
- https://samplestore.geta11y.com/de/2026
- https://samplestore.geta11y.com/de/2026/10
- https://samplestore.geta11y.com/de/about
- https://samplestore.geta11y.com/de/author/admin
- https://samplestore.geta11y.com/de/care-guide
- https://samplestore.geta11y.com/de/cart
- https://samplestore.geta11y.com/de/category/uncategorized
- https://samplestore.geta11y.com/de/contact
- https://samplestore.geta11y.com/de/faq
- https://samplestore.geta11y.com/de/hello-world
- https://samplestore.geta11y.com/de/my-account
- https://samplestore.geta11y.com/de/my-account/lost-password
- https://samplestore.geta11y.com/de/privacy
- https://samplestore.geta11y.com/de/product-category/cookware
- https://samplestore.geta11y.com/de/product-category/knives
- https://samplestore.geta11y.com/de/product-category/table
- https://samplestore.geta11y.com/de/product/cast-iron-skillet-26
- https://samplestore.geta11y.com/de/product/enamel-dutch-oven-5l
- https://samplestore.geta11y.com/de/product/oak-cutting-board-l
- https://samplestore.geta11y.com/de/product/steel-saucepan-18
- https://samplestore.geta11y.com/de/product/stoneware-mugs-set-4
- https://samplestore.geta11y.com/de/product/tea-towels-set-3
- https://samplestore.geta11y.com/de/shipping-and-returns
- https://samplestore.geta11y.com/fr/2026
- https://samplestore.geta11y.com/fr/2026/10
- …further pages: 71
Elements must meet minimum color contrast ratio thresholds
Fix any of the following: Element has insufficient color contrast of 2.55 (foreground color: #a1a2a5, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1
del > .woocommerce-Price-amount.amount
Fix Code
/* Struck-through (original) sale price.
Scoped to WooCommerce pages only; no global change to the theme's text colours. */
.woocommerce-page del,
.woocommerce-page del > .woocommerce-Price-amount.amount,
.woocommerce-page del > .woocommerce-Price-amount.amount .woocommerce-Price-currencySymbol {
color: #6b6c70; /* darker version of the current #a1a2a5 grey, on the #ffffff background */
opacity: 1; /* cancels any theme opacity on <del>, which would lighten the colour again */
}
How to Fix
1. Do not edit wp-content/plugins/woocommerce/assets/css/ or the parent theme's stylesheet, because updates overwrite them. 2. Add the CSS in one of these places: the child theme's functions.php using the WooCommerce variant, which attaches the rule to the 'woocommerce-general' stylesheet handle; the child theme's style.css; or Additional CSS in the Customizer or Site Editor. 3. Replace <replace-with-child-theme-folder> with the actual folder name of your child theme. If your theme dequeues 'woocommerce-general', use the handle of the stylesheet the theme loads instead. Find it in page source as the id of the <link> tag minus the '-css' suffix. 4. The rule includes opacity: 1 because some themes fade <del> with opacity. That fade would make the computed colour lighter than the colour you set. 5. The selector applies to every WooCommerce page, not only /cart. Check struck-through prices on the cart page, the shop archive, a single product on sale and the mini-cart. Confirm they read as dark grey on the white background. 6. Re-run the contrast check on 'del > .woocommerce-Price-amount.amount' and confirm it passes. If your brand needs a different grey, pick any colour that passes against #ffffff at 12px normal weight.
Elements must meet minimum color contrast ratio thresholds
Fix any of the following: Element has insufficient color contrast of 2.02 (foreground color: #b6b6b6, background color: #ffffff, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1
del > .woocommerce-Price-amount.amount > bdi
Fix Code
/* Struck-through regular price shown next to a sale price.
Scoped to WooCommerce price markup inside <del> only. No shared colour token is changed. */
del .woocommerce-Price-amount,
del .woocommerce-Price-amount bdi,
del .woocommerce-Price-amount .woocommerce-Price-currencySymbol {
color: #595959;
}
/* Some themes fade the whole <del> with opacity, which blends any colour back toward the white background.
Reset it only where <del> wraps a WooCommerce price. */
del:has(.woocommerce-Price-amount) {
opacity: 1;
color: #595959;
}
How to Fix
1. Open your child theme's style.css at wp-content/themes/<replace-with-child-theme-folder>/style.css. If you have no child theme, use Appearance > Customize > Additional CSS. In a block theme, use Appearance > Editor > Styles > Additional CSS. Do not edit the parent theme or plugins/woocommerce/assets, because updates overwrite those files. 2. Paste the CSS. It targets only <del> elements that wrap a .woocommerce-Price-amount, so other grey text that uses the same colour is unaffected. 3. The detected light grey (#b6b6b6) may come from the theme applying opacity to <del> rather than from a colour value. The opacity: 1 reset covers that case. 4. Clear any caching or CSS-optimisation plugin, then reload a product that is on sale. 5. In DevTools, confirm the struck-through price now computes to dark grey (#595959) on white. Re-run the contrast check in the shop grid, the single product page, the cart and the mini-cart, because <del> prices appear in all four.
Pages affected: 49
- https://samplestore.geta11y.com/
- https://samplestore.geta11y.com/de
- https://samplestore.geta11y.com/de/product-category/cookware
- https://samplestore.geta11y.com/de/product-category/table
- https://samplestore.geta11y.com/de/product/cast-iron-skillet-26
- https://samplestore.geta11y.com/de/product/enamel-dutch-oven-5l
- https://samplestore.geta11y.com/de/product/linen-apron
- https://samplestore.geta11y.com/de/product/oak-cutting-board-l
- https://samplestore.geta11y.com/de/product/steel-saucepan-18
- https://samplestore.geta11y.com/de/product/stoneware-mugs-set-4
- https://samplestore.geta11y.com/de/product/tea-towels-set-3
- https://samplestore.geta11y.com/fr
- https://samplestore.geta11y.com/fr/product-category/cookware
- https://samplestore.geta11y.com/fr/product-category/table
- https://samplestore.geta11y.com/fr/product/cast-iron-skillet-26
- https://samplestore.geta11y.com/fr/product/enamel-dutch-oven-5l
- https://samplestore.geta11y.com/fr/product/linen-apron
- https://samplestore.geta11y.com/fr/product/oak-cutting-board-l
- https://samplestore.geta11y.com/fr/product/steel-saucepan-18
- https://samplestore.geta11y.com/fr/product/stoneware-mugs-set-4
- https://samplestore.geta11y.com/fr/product/tea-towels-set-3
- https://samplestore.geta11y.com/lv
- https://samplestore.geta11y.com/lv/product-category/cookware
- https://samplestore.geta11y.com/lv/product-category/table
- https://samplestore.geta11y.com/lv/product/cast-iron-skillet-26
- …further pages: 24
Robust (1 issues)
Interactive controls must not be nested
Fix any of the following: Element has focusable descendants
#tab-title-description
Fix Code
<!-- Resulting markup: the tab role moves from the <li> to the focusable <a> -->
<ul class="tabs wc-tabs" role="tablist">
<li class="description_tab active" role="presentation">
<a href="#tab-description" id="tab-title-description" role="tab" aria-controls="tab-description" aria-selected="true" tabindex="0">Beschreibung</a>
</li>
<!-- other tabs: same pattern, with aria-selected="false" tabindex="-1" on the <a> -->
</ul>
<!-- The existing panel id="tab-description" role="tabpanel" aria-labelledby="tab-title-description" stays unchanged:
aria-labelledby now resolves to the <a>, which carries id="tab-title-description". -->
How to Fix
1. Check whether your child theme already has themes/<child-theme>/woocommerce/single-product/tabs/tabs.php. If it does not, copy plugins/woocommerce/templates/single-product/tabs/tabs.php to that path. Never edit the plugin file, because WooCommerce updates overwrite it. 2. In the copy, remove `id`, `role="tab"`, `aria-controls` and any `aria-selected` from the `<li>`, and give the `<li>` `role="presentation"`. 3. Put `id="tab-title-<key>"`, `role="tab"` and `aria-controls="tab-<key>"` on the `<a>` instead (see the woocommerce variant). Keep the `<li>` class (`description_tab` etc.), because WooCommerce's single-product.js and the theme CSS rely on it. 4. Leave the panels unchanged. Their `aria-labelledby="tab-title-<key>"` now points at the `<a>`. 5. Add the functions.php snippet from the wordpress variant to the child theme. It runs after WooCommerce's `wc-single-product` script and does three things: - moves the selected state to the `<a>` elements; - gives inactive tabs `tabindex="-1"`; - adds Left/Right/Home/End arrow-key navigation. 6. Clear any page or asset cache. Then confirm in DevTools that the `<a>` ("Beschreibung") now carries `aria-selected="true"` and that no `<li>` has `role="tab"`. 7. Test the tabs with the keyboard: Tab reaches the active tab, arrow keys switch tabs, and Tab moves into the panel. 8. Re-run axe. 9. After future WooCommerce updates, compare the @version line in your override with WooCommerce › Status › Templates, and merge any upstream changes.
Pages affected: 35
- https://samplestore.geta11y.com/de/product/cast-iron-skillet-26
- https://samplestore.geta11y.com/de/product/enamel-dutch-oven-5l
- https://samplestore.geta11y.com/de/product/linen-apron
- https://samplestore.geta11y.com/de/product/oak-cutting-board-l
- https://samplestore.geta11y.com/de/product/steel-saucepan-18
- https://samplestore.geta11y.com/de/product/stoneware-mugs-set-4
- https://samplestore.geta11y.com/de/product/tea-towels-set-3
- https://samplestore.geta11y.com/fr/product/cast-iron-skillet-26
- https://samplestore.geta11y.com/fr/product/enamel-dutch-oven-5l
- https://samplestore.geta11y.com/fr/product/linen-apron
- https://samplestore.geta11y.com/fr/product/oak-cutting-board-l
- https://samplestore.geta11y.com/fr/product/steel-saucepan-18
- https://samplestore.geta11y.com/fr/product/stoneware-mugs-set-4
- https://samplestore.geta11y.com/fr/product/tea-towels-set-3
- https://samplestore.geta11y.com/lv/product/cast-iron-skillet-26
- https://samplestore.geta11y.com/lv/product/enamel-dutch-oven-5l
- https://samplestore.geta11y.com/lv/product/linen-apron
- https://samplestore.geta11y.com/lv/product/oak-cutting-board-l
- https://samplestore.geta11y.com/lv/product/steel-saucepan-18
- https://samplestore.geta11y.com/lv/product/stoneware-mugs-set-4
- https://samplestore.geta11y.com/lv/product/tea-towels-set-3
- https://samplestore.geta11y.com/nl/product/cast-iron-skillet-26
- https://samplestore.geta11y.com/nl/product/enamel-dutch-oven-5l
- https://samplestore.geta11y.com/nl/product/linen-apron
- https://samplestore.geta11y.com/nl/product/oak-cutting-board-l
- …further pages: 10
Passing Criteria
* Verified on a sample of elements (tool cap). A pass means no issues were found in the examined sample, not that every element on every page was checked.
Inconclusive Items
AI-assessed and inconclusive signals are separated from machine-verified findings and do not affect the machine-evidence score.
Confidence: 60%
Pages affected: 1
Confidence: 70%
Pages affected: 1
Confidence: 60%
Pages affected: 1
Confidence: 70%
Pages affected: 1
Confidence: 70%
Pages affected: 1
Confidence: 70%
Confidence: 50%
Pages affected: 92
- https://samplestore.geta11y.com/de/2026
- https://samplestore.geta11y.com/de/2026/10
- https://samplestore.geta11y.com/de/about
- https://samplestore.geta11y.com/de/author/admin
- https://samplestore.geta11y.com/de/care-guide
- https://samplestore.geta11y.com/de/category/uncategorized
- https://samplestore.geta11y.com/de/contact
- https://samplestore.geta11y.com/de/faq
- https://samplestore.geta11y.com/de/hello-world
- https://samplestore.geta11y.com/de/my-account
- https://samplestore.geta11y.com/de/my-account/lost-password
- https://samplestore.geta11y.com/de/privacy
- https://samplestore.geta11y.com/de/product-category/cookware
- https://samplestore.geta11y.com/de/product-category/knives
- https://samplestore.geta11y.com/de/product-category/table
- https://samplestore.geta11y.com/de/product/cast-iron-skillet-26
- https://samplestore.geta11y.com/de/product/enamel-dutch-oven-5l
- https://samplestore.geta11y.com/de/product/oak-cutting-board-l
- https://samplestore.geta11y.com/de/product/steel-saucepan-18
- https://samplestore.geta11y.com/de/product/stoneware-mugs-set-4
- https://samplestore.geta11y.com/de/product/tea-towels-set-3
- https://samplestore.geta11y.com/de/shipping-and-returns
- https://samplestore.geta11y.com/fr/2026
- https://samplestore.geta11y.com/fr/2026/10
- https://samplestore.geta11y.com/fr/about
- …further pages: 67
Confidence: 50%
Confidence: 60%
Pages affected: 1
Confidence: 60%
Pages affected: 1
Confidence: 70%
Pages affected: 1
Confidence: 70%
Pages affected: 1
Confidence: 85%
Pages affected: 1
Confidence: 80%
Confidence: 75%
Pages affected: 1
Confidence: 75%
Pages affected: 1
Confidence: 60%
Pages affected: 1
Confidence: 70%
Pages affected: 29
- https://samplestore.geta11y.com/
- https://samplestore.geta11y.com/about
- https://samplestore.geta11y.com/blog/2026
- https://samplestore.geta11y.com/blog/2026/10
- https://samplestore.geta11y.com/blog/author/admin
- https://samplestore.geta11y.com/blog/category/uncategorized
- https://samplestore.geta11y.com/blog/hello-world
- https://samplestore.geta11y.com/care-guide
- https://samplestore.geta11y.com/cart
- https://samplestore.geta11y.com/contact
- https://samplestore.geta11y.com/de
- https://samplestore.geta11y.com/de/product/linen-apron
- https://samplestore.geta11y.com/faq
- https://samplestore.geta11y.com/fr
- https://samplestore.geta11y.com/fr/product/linen-apron
- https://samplestore.geta11y.com/lv
- https://samplestore.geta11y.com/lv/product/linen-apron
- https://samplestore.geta11y.com/my-account
- https://samplestore.geta11y.com/my-account/lost-password
- https://samplestore.geta11y.com/nl
- https://samplestore.geta11y.com/nl/product/linen-apron
- https://samplestore.geta11y.com/privacy
- https://samplestore.geta11y.com/product-category/cookware
- https://samplestore.geta11y.com/product-category/table
- https://samplestore.geta11y.com/product/enamel-dutch-oven-5l
- …further pages: 4
Confidence: 70%
Pages affected: 29
- https://samplestore.geta11y.com/
- https://samplestore.geta11y.com/about
- https://samplestore.geta11y.com/blog/2026
- https://samplestore.geta11y.com/blog/2026/10
- https://samplestore.geta11y.com/blog/author/admin
- https://samplestore.geta11y.com/blog/category/uncategorized
- https://samplestore.geta11y.com/blog/hello-world
- https://samplestore.geta11y.com/care-guide
- https://samplestore.geta11y.com/cart
- https://samplestore.geta11y.com/contact
- https://samplestore.geta11y.com/de
- https://samplestore.geta11y.com/de/product/linen-apron
- https://samplestore.geta11y.com/faq
- https://samplestore.geta11y.com/fr
- https://samplestore.geta11y.com/fr/product/linen-apron
- https://samplestore.geta11y.com/lv
- https://samplestore.geta11y.com/lv/product/linen-apron
- https://samplestore.geta11y.com/my-account
- https://samplestore.geta11y.com/my-account/lost-password
- https://samplestore.geta11y.com/nl
- https://samplestore.geta11y.com/nl/product/linen-apron
- https://samplestore.geta11y.com/privacy
- https://samplestore.geta11y.com/product-category/cookware
- https://samplestore.geta11y.com/product-category/table
- https://samplestore.geta11y.com/product/enamel-dutch-oven-5l
- …further pages: 4
Confidence: 70%
Pages affected: 29
- https://samplestore.geta11y.com/
- https://samplestore.geta11y.com/about
- https://samplestore.geta11y.com/blog/2026
- https://samplestore.geta11y.com/blog/2026/10
- https://samplestore.geta11y.com/blog/author/admin
- https://samplestore.geta11y.com/blog/category/uncategorized
- https://samplestore.geta11y.com/blog/hello-world
- https://samplestore.geta11y.com/care-guide
- https://samplestore.geta11y.com/cart
- https://samplestore.geta11y.com/contact
- https://samplestore.geta11y.com/de
- https://samplestore.geta11y.com/de/product/linen-apron
- https://samplestore.geta11y.com/faq
- https://samplestore.geta11y.com/fr
- https://samplestore.geta11y.com/fr/product/linen-apron
- https://samplestore.geta11y.com/lv
- https://samplestore.geta11y.com/lv/product/linen-apron
- https://samplestore.geta11y.com/my-account
- https://samplestore.geta11y.com/my-account/lost-password
- https://samplestore.geta11y.com/nl
- https://samplestore.geta11y.com/nl/product/linen-apron
- https://samplestore.geta11y.com/privacy
- https://samplestore.geta11y.com/product-category/cookware
- https://samplestore.geta11y.com/product-category/table
- https://samplestore.geta11y.com/product/enamel-dutch-oven-5l
- …further pages: 4
Confidence: 80%
Pages affected: 29
- https://samplestore.geta11y.com/
- https://samplestore.geta11y.com/about
- https://samplestore.geta11y.com/blog/2026
- https://samplestore.geta11y.com/blog/2026/10
- https://samplestore.geta11y.com/blog/author/admin
- https://samplestore.geta11y.com/blog/category/uncategorized
- https://samplestore.geta11y.com/blog/hello-world
- https://samplestore.geta11y.com/care-guide
- https://samplestore.geta11y.com/cart
- https://samplestore.geta11y.com/contact
- https://samplestore.geta11y.com/de
- https://samplestore.geta11y.com/de/product/linen-apron
- https://samplestore.geta11y.com/faq
- https://samplestore.geta11y.com/fr
- https://samplestore.geta11y.com/fr/product/linen-apron
- https://samplestore.geta11y.com/lv
- https://samplestore.geta11y.com/lv/product/linen-apron
- https://samplestore.geta11y.com/my-account
- https://samplestore.geta11y.com/my-account/lost-password
- https://samplestore.geta11y.com/nl
- https://samplestore.geta11y.com/nl/product/linen-apron
- https://samplestore.geta11y.com/privacy
- https://samplestore.geta11y.com/product-category/cookware
- https://samplestore.geta11y.com/product-category/table
- https://samplestore.geta11y.com/product/enamel-dutch-oven-5l
- …further pages: 4
Confidence: 70%
Pages affected: 1
Confidence: 80%
Pages affected: 1
Confidence: 80%
Pages affected: 8
- https://samplestore.geta11y.com/fr/product/linen-apron
- https://samplestore.geta11y.com/lv/product/linen-apron
- https://samplestore.geta11y.com/nl/product/linen-apron
- https://samplestore.geta11y.com/product/enamel-dutch-oven-5l
- https://samplestore.geta11y.com/product/oak-cutting-board-l
- https://samplestore.geta11y.com/product/tea-towels-set-3
- https://samplestore.geta11y.com/de/product/linen-apron
- https://samplestore.geta11y.com/product/linen-apron
Confidence: 80%
Confidence: 70%
Pages affected: 1
Confidence: 70%
Pages affected: 1
Confidence: 85%
Pages affected: 1
Confidence: 80%
Pages affected: 1
Confidence: 70%
WCAG Coverage Transparency
Every WCAG 2.1 AA criterion (50 total) is classified by how it was tested. Fully automated criteria are checked by deterministic tools. AI-assisted criteria combine automated detection with AI analysis of screenshots and page structure. Expand any criterion to see verification steps adapted to the audited site type.
Perceivable
Scored: a machine-verifiable check ran on this criterion. Its result counts in the score; human review is still recommended for the aspects a machine cannot judge.
Verification steps
Where to test: Kastanje Kitchen home page and linked standard pages with meaningful images, the gallery zoom trigger, or image-based form controls.
Review flagged alt texts - does each one accurately describe the image's PURPOSE in the context of the surrounding content?
Estimated time: ~30 min
Not present: no video or audio was found on the audited pages at audit time, so this criterion had nothing to apply to. It is not counted in the score. If a page loads video only after a click (a thumbnail with a play button), test this criterion manually — and re-check it whenever you add media.
Verification steps
Where to test: Kastanje Kitchen home page and linked standard pages, especially any page where media has been added since the audit.
Verify transcripts include all spoken content and relevant non-speech sounds.
Estimated time: varies
Not present: no video or audio was found on the audited pages at audit time, so this criterion had nothing to apply to. It is not counted in the score. If a page loads video only after a click (a thumbnail with a play button), test this criterion manually — and re-check it whenever you add media.
Verification steps
Where to test: Kastanje Kitchen home page and linked standard pages containing any newly added recorded video with sound.
Verify that captions accurately represent all spoken content and relevant sounds.
Estimated time: varies
Not present: no video or audio was found on the audited pages at audit time, so this criterion had nothing to apply to. It is not counted in the score. If a page loads video only after a click (a thumbnail with a play button), test this criterion manually — and re-check it whenever you add media.
Verification steps
Where to test: Kastanje Kitchen home page and linked standard pages containing any newly added recorded video with sound.
For videos with important visual content (actions, scene changes, on-screen text), verify that either: (1) an audio description track is available that describes these visual elements during pauses in dialogue, or (2) a full text alternative is provided that describes all visual and auditory content.
Estimated time: varies
Not present: no video or audio was found on the audited pages at audit time, so this criterion had nothing to apply to. It is not counted in the score. If a page loads video only after a click (a thumbnail with a play button), test this criterion manually — and re-check it whenever you add media.
Verification steps
Where to test: Kastanje Kitchen standard pages only if a live video stream is added or advertised.
If the site streams live audio or video (webinars, live events, live broadcasts), verify that captions are provided for all live audio content. Check a live session or its configuration: real-time captions (human or automatic with correction) must be available while the content is live.
Estimated time: varies
Not present: no video or audio was found on the audited pages at audit time, so this criterion had nothing to apply to. It is not counted in the score. If a page loads video only after a click (a thumbnail with a play button), test this criterion manually — and re-check it whenever you add media.
Verification steps
Where to test: Kastanje Kitchen home page and linked standard pages containing any newly added recorded video with sound.
Verify that audio descriptions cover important visual content not available from the soundtrack.
Estimated time: varies
Scored: a machine-verifiable check ran on this criterion. Its result counts in the score; human review is still recommended for the aspects a machine cannot judge.
Verification steps
Where to test: The Kastanje Kitchen homepage and any standard pages containing forms, reached through the site's navigation.
Verify headings accurately describe section content and follow a logical hierarchy.
Estimated time: ~15 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: The homepage, the gallery containing the magnifying-glass zoom trigger, and standard pages with forms.
Disable CSS (or use a screen reader) and read through each page. Verify that the content order still makes sense — headings come before their sections, captions sit next to their images, and related content is grouped together. Pay special attention to multi-column layouts and content repositioned with CSS grid or flexbox.
Estimated time: ~15 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: Instructions on the homepage, near the gallery zoom control, and on standard pages containing forms or settings.
Verify instructions do not rely solely on shape, size, visual location, orientation, or sound.
Estimated time: ~10 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: The homepage, standard pages containing forms, and the gallery zoom view on a phone or tablet.
Rotate a phone or tablet (or switch the browser's device emulation between portrait and landscape). Verify the content is not locked to one orientation and that everything remains readable and usable in both — unless a specific orientation is essential (for example a piano app or a bank cheque scan).
Estimated time: ~5 min
Scored: a machine-verifiable check ran on this criterion. Its result counts in the score; human review is still recommended for the aspects a machine cannot judge.
Verification steps
Where to test: Any standard page on Kastanje Kitchen that asks for the visitor's personal details; do not assume a checkout or account form exists.
On forms that collect personal information (name, email, address, phone, credit card), inspect each input field. Verify it has the correct autocomplete attribute (e.g., autocomplete="email", autocomplete="street-address"). This allows browsers and assistive technologies to auto-fill fields and display familiar icons.
Estimated time: ~10 min
Scored: a machine-verifiable check ran on this criterion. Its result counts in the score; human review is still recommended for the aspects a machine cannot judge.
Verification steps
Where to test: Homepage text links, standard pages containing forms, and any available settings or selectable controls. Pay particular attention to links already flagged as relying on color.
Verify that information conveyed by color is also available through other means (text, icons, patterns).
Estimated time: ~15 min
Needs a manual check: the automated checks found nothing on the audited pages they could examine for this criterion. It is not counted in the score — follow the manual test step.
Verification steps
Where to test: The Kastanje Kitchen homepage and other standard pages reached through its navigation, including any pages containing media.
Load each page with sound on. If any audio starts automatically and plays for more than 3 seconds, verify there is a mechanism to pause or stop it, or to control its volume independently of the system volume — and that this control is easy to find at the start of the page and works with the keyboard.
Estimated time: ~5 min
Scored: a machine-verifiable check ran on this criterion. Its result counts in the score; human review is still recommended for the aspects a machine cannot judge.
Verification steps
Where to test: The homepage and standard pages containing forms, especially text identified by the automated contrast findings.
Automated tools measure contrast against solid backgrounds but can miss text placed over photographs, gradients, or patterned backgrounds. Look for text overlaying hero images, banner photos, or colored gradients. Use a contrast checker tool (like the WebAIM contrast checker) to verify the ratio is at least 4.5:1 for normal text or 3:1 for large text (18pt+ or 14pt+ bold).
Estimated time: ~15 min
Scored: a machine-verifiable check ran on this criterion. Its result counts in the score; human review is still recommended for the aspects a machine cannot judge.
Verification steps
Where to test: The homepage, standard pages containing forms, and the gallery area with the magnifying-glass control if present.
Zoom the browser to 200% (Ctrl/Cmd and +). Verify all text grows, nothing is cut off or overlaps, and every function — menus, forms, buttons, dialogs — remains usable. Content may reflow, but no information or functionality may be lost.
Estimated time: ~10 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: The homepage and other standard pages displaying pictures or gallery content.
Look for images that contain readable text (headings as images, text in banners, text in infographics). For each one, verify the text could NOT reasonably be presented as real styled text. Exception: logos and brand names in their customary typographic treatment are exempt.
Estimated time: ~15 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: The homepage and standard pages containing forms, plus the gallery area if present; focus on locations affected by the reported horizontal scrolling.
Set the browser window to 1280 pixels wide and zoom to 400% (equivalent to a 320 CSS-pixel viewport). Verify content can be read without scrolling horizontally and without loss of information or functionality. Content that genuinely needs two dimensions — data tables, maps, diagrams — is exempt.
Estimated time: ~10 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: Standard pages containing forms, especially the reported low-contrast field boundary, and the gallery magnifying-glass control if present.
Check that user interface components (buttons, form inputs, toggles, icons) and meaningful graphics (charts, diagrams, icons conveying information) have at least 3:1 contrast ratio against their adjacent colors. Focus on: button borders against backgrounds, input field borders, icon colors, chart segments, and focus indicators.
Estimated time: ~15 min
Scored: a machine-verifiable check ran on this criterion. Its result counts in the score; human review is still recommended for the aspects a machine cannot judge.
Verification steps
Where to test: The Kastanje Kitchen homepage, standard pages containing forms, and the page with the gallery zoom trigger marked 🔍.
Apply the WCAG text-spacing values with a text-spacing bookmarklet or browser extension: line height 1.5 × font size, paragraph spacing 2 × font size, letter spacing 0.12 × font size, word spacing 0.16 × font size. Verify no text is cut off, overlaps other content, or disappears, and all controls still work.
Estimated time: ~10 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: Homepage navigation, the gallery page and its 🔍 trigger, and standard pages with form help or other hover information.
Find elements that show additional content when you hover with the mouse or focus with the keyboard (tooltips, dropdown menus, popover cards). For each one, verify: (1) Dismissible — you can close it without moving the mouse (e.g., pressing Escape), (2) Hoverable — you can move the mouse over the new content without it disappearing, (3) Persistent — the content stays visible until you dismiss it, move focus, or hover away.
Estimated time: ~10 min
Operable
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: Homepage navigation, the gallery page and zoom view, and standard pages containing forms or settings.
Put the mouse aside. Using only Tab, Shift+Tab, Enter, Space, Escape and the arrow keys, verify you can reach and operate every function on each page: navigation and menus, forms, buttons, carousels, dialogs, filters, and custom widgets — without needing specific timings for individual keystrokes.
Estimated time: ~20 min
Scored: a machine-verifiable check ran on this criterion. Its result counts in the score; human review is still recommended for the aspects a machine cannot judge.
Verification steps
Where to test: The gallery zoom view, standard pages with forms or settings, and any pop-up opened from the homepage.
Tab and Shift+Tab through each page, including embedded players, maps, chat widgets and dialogs. Verify focus can always move away from every component using the keyboard. If leaving a component needs a key other than Tab, Shift+Tab or the arrow keys, verify users are told how.
Estimated time: ~10 min
Requires knowledge of application-specific keyboard shortcuts. Automated tools cannot detect single-character key bindings.
Verification steps
Where to test: The homepage, the gallery page and zoom view, standard pages with forms, and any available shortcut settings or help.
Check if single-character keyboard shortcuts exist (letters, numbers, symbols, punctuation). If so, verify users can either turn them off, remap them to include a modifier key (Ctrl, Alt), or they only activate when the relevant component has focus.
Estimated time: ~10 min
Scored: a machine-verifiable check ran on this criterion. Its result counts in the score; human review is still recommended for the aspects a machine cannot judge.
Verification steps
Where to test: Standard pages containing forms, any session or countdown messages, and any gallery view or pop-up that closes automatically.
For each time limit (session timeouts, timed forms, auto-advancing content), verify that at least one of these holds: the user can turn the limit off before it runs out; the user can adjust it to at least ten times the default; or the user is warned before it expires, gets at least 20 seconds to extend it with a simple action (for example pressing a key), and can extend it at least ten times. Exceptions: real-time events such as auctions, limits that are essential to the activity, and limits longer than 20 hours.
Estimated time: ~10 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: Kastanje Kitchen homepage and any standard store pages containing the gallery, banners, or automatically updating information.
Look for any content that moves, blinks or scrolls for more than 5 seconds and starts automatically alongside other content (carousels, news tickers, animated banners). Verify there is a mechanism to pause, stop or hide it, and that the user can go on using the page while it stays paused — pausing only while the pointer or keyboard focus rests on the content does not pass. For content that updates automatically (like a live ticker or refreshing feed), verify it can be paused, stopped, hidden, or its update frequency controlled.
Estimated time: ~10 min
Flash frequency cannot be measured from the page code or screenshots — check video and animated content for more than three flashes per second.
Verification steps
Where to test: Kastanje Kitchen homepage, gallery, and any standard pages with video or animated content, if present.
Verify no content flashes more than 3 times per second, or flashing is below size/brightness thresholds.
Estimated time: ~5 min
Scored: a machine-verifiable check ran on this criterion. Its result counts in the score; human review is still recommended for the aspects a machine cannot judge.
Verification steps
Where to test: Kastanje Kitchen homepage and another standard page with the same header and navigation.
Load a page and press Tab once. Verify there is a way to skip content repeated on every page (header, navigation) — a working "skip to content" link that moves focus to the main content, or a clear structure of landmarks (header, nav, main) and headings that screen-reader users can jump between.
Estimated time: ~5 min
Scored: a machine-verifiable check ran on this criterion. Its result counts in the score; human review is still recommended for the aspects a machine cannot judge.
Verification steps
Where to test: Kastanje Kitchen homepage and all available standard pages, especially pages containing forms.
Check the browser tab title on each page. Verify it describes the page's topic or purpose and distinguishes it from other pages. Good: "Shopping Cart — Example Store". Bad: "Page", "Untitled", or the same title on every page. The title should make sense when read in a list of open tabs.
Estimated time: ~5 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: Kastanje Kitchen homepage, gallery zoom window, and standard pages containing forms or settings.
Press Tab from the top of each page and follow the focus with your eyes. Verify that focus moves in an order that preserves meaning and operability: it follows the reading order, does not jump unexpectedly across the page, and moves into dialogs and menus when they open and back to the trigger when they close.
Estimated time: ~15 min
Scored: a machine-verifiable check ran on this criterion. Its result counts in the score; human review is still recommended for the aspects a machine cannot judge.
Verification steps
Where to test: Kastanje Kitchen navigation, links within standard page content, pages containing forms, and the gallery magnifying-glass trigger.
Verify that link text makes sense out of context. Check links flagged as generic ('click here', 'read more').
Estimated time: ~15 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: Kastanje Kitchen home page and the ordinary pages linked from its navigation; any search, sitemap, or additional page lists present.
Verify at least two ways exist to locate pages (e.g., navigation menu + search + sitemap).
Estimated time: ~5 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: Headings on Kastanje Kitchen's standard pages, all detected forms, setting controls, and the gallery zoom trigger.
Verify headings accurately describe section content and follow a logical hierarchy.
Estimated time: ~15 min
Scored: a machine-verifiable check ran on this criterion. Its result counts in the score; human review is still recommended for the aspects a machine cannot judge.
Checked on a sample: 39 of 65 eligible elements were examined before the tool's cap. A clean result means no issues in the sample — not proof for every element.
Verification steps
Where to test: Kastanje Kitchen navigation, standard pages, forms, settings, gallery zoom trigger, and any opened gallery view.
Tab through each page and watch where focus goes. Verify every link, button, form field and custom control shows a clearly visible indicator (outline, underline, colour or background change) whenever it has keyboard focus — including inside cookie banners, menus and dialogs.
Estimated time: ~10 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: Kastanje Kitchen gallery and zoom view, plus any other swipe or gesture-based controls found on its standard pages.
Identify any multipoint gestures (pinch-to-zoom, two-finger rotate) or path-based gestures (swiping, dragging a slider). For each one, verify there is a single-pointer alternative (a tap, click, or button) that achieves the same result.
Estimated time: ~15 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: Kastanje Kitchen navigation links, gallery zoom trigger, setting controls, and safely testable form buttons.
For clickable elements: press and hold the mouse button (or touch and hold), then move the pointer away before releasing. Verify the action does NOT fire on the down-event alone. The action should either fire on release (up-event) or be cancellable by moving away.
Estimated time: ~10 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: Text-labelled links, form fields, buttons, and setting controls on Kastanje Kitchen's standard pages; also review the gallery zoom trigger.
For buttons, links, and form fields that have visible text labels, verify the accessible name (what a screen reader announces) includes the visible text. Example problem: a button shows "Submit Order" but has aria-label="send". Voice control users saying "click Submit Order" would fail because the accessible name doesn't match. Check buttons with icons + text, and inputs with visible labels.
Estimated time: ~10 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: Kastanje Kitchen home page and the page containing the image gallery; any page that gives instructions to shake, tilt, or move a device.
Check if any functionality responds to device motion (tilting, shaking, or moving the device). If so, verify both: (1) a user interface control performs the same function, and (2) the motion response can be disabled to prevent accidental activation. Exceptions: the motion is used through an accessibility-supported interface, or the motion is essential to the function (for example a step counter).
Estimated time: ~5 min
Understandable
Scored: a machine-verifiable check ran on this criterion. Its result counts in the score; human review is still recommended for the aspects a machine cannot judge.
Verification steps
Where to test: Kastanje Kitchen home page and other standard pages reached through its navigation, especially pages containing forms and the image gallery.
View the page source and check the lang attribute on the <html> element (e.g., lang="en", lang="de", lang="fr"). Verify it matches the actual primary language of the page content. Screen readers use this to select the correct pronunciation rules. A page in German with lang="en" will be read with English pronunciation.
Estimated time: ~5 min
Scored: a machine-verifiable check ran on this criterion. Its result counts in the score; human review is still recommended for the aspects a machine cannot judge.
Verification steps
Where to test: Text on Kastanje Kitchen standard pages, including form instructions and image-gallery captions or descriptions where present.
Look for passages of text in a different language than the rest of the page (e.g., a French quote on an English page, a product name in another language). Verify that these passages have a lang attribute marking the change (e.g., <span lang="fr">). Individual foreign words that have become part of the page's language (like "café" or "sushi") do not need to be marked.
Estimated time: ~10 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: Kastanje Kitchen home-page navigation, pages containing forms or settings, and the image gallery's 🔍 zoom control.
Use the Tab key to move through all interactive elements on each page. Verify that simply receiving keyboard focus does NOT trigger any of the following: page navigation, a popup or modal opening, a form being submitted, or a significant change in page content.
Estimated time: ~15 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: Kastanje Kitchen pages containing forms and settings, especially the setting associated with the previously reported context change.
Interact with form controls (dropdowns, checkboxes, radio buttons, text fields) and verify that changing their value does NOT cause an unexpected result such as: navigating to a new page, submitting a form, or significantly changing other content on the page. If a dropdown immediately navigates on selection (without a "Go" button), that is a failure.
Estimated time: ~10 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: Repeated header, menu, and footer navigation on the Kastanje Kitchen home page and other standard pages, including form and gallery pages where separate.
Verify that navigation mechanisms appear in the same relative order across pages.
Estimated time: ~10 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: Kastanje Kitchen's home page and linked standard pages, including the gallery area with the '🔍' zoom trigger.
Verify that components with the same function are identified consistently across pages.
Estimated time: ~10 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: All forms found on Kastanje Kitchen's standard pages; include checkout forms if the demo store provides them.
Submit each form with missing and invalid entries. Verify every error is identified in text (not by colour alone), tells the user which field is affected, and describes the problem — and that the message is placed near the field or in a summary users are moved to.
Estimated time: ~10 min
Scored: a machine-verifiable check ran on this criterion. Its result counts in the score; human review is still recommended for the aspects a machine cannot judge.
Verification steps
Where to test: All forms on Kastanje Kitchen's standard pages, including any contact, account, or checkout forms that are actually available.
Review all forms on the site. Verify that every input field has a visible label that clearly describes what to enter. Check that required fields are indicated (not just by color), expected formats are shown (e.g., "DD/MM/YYYY" for dates), and any special requirements are stated before the user encounters the field. Group related fields (like address parts) with a visible group label.
Estimated time: ~15 min
Whether error messages suggest a correction depends on their content — no automated check examines it.
Verification steps
Where to test: Forms on Kastanje Kitchen's standard pages, especially fields with required entries or format restrictions.
Submit forms with typical mistakes (a malformed email address, a date in the wrong format, a missing required field). When the error is detected and a correction is known, verify the error message tells the user how to fix it (for example "Enter a date as DD/MM/YYYY"), unless that would jeopardize security or the purpose of the content.
Estimated time: ~10 min
Requires understanding business logic to identify legal/financial transactions and verify review/confirm/reverse mechanisms.
Verification steps
Where to test: Kastanje Kitchen's cart and checkout if available, plus any standard page offering deletion of saved user data or a legal commitment.
For pages that create legal commitments or financial transactions, change or delete user data, or submit test answers, verify that at least one of these holds: the submission can be reversed; the data entered is checked for input errors and the user can correct them; or the user can review, confirm and correct the information before finalizing it. A separate review step is one way to pass, not the only one.
Estimated time: ~15 min
Robust
W3C's 2023 note on WCAG 2.1 treats 4.1.1 as always satisfied for HTML and XML content; EN 301 549 V3.2.1 still lists it as clause 9.4.1.1. No automated check examines it.
Verification steps
Where to test: The assessment record for Kastanje Kitchen's home page and linked standard pages.
W3C's 2023 note on WCAG 2.1 treats success criterion 4.1.1 Parsing as always satisfied for HTML and XML content, because browsers and assistive technologies now parse markup consistently. EN 301 549 V3.2.1 still lists it as clause 9.4.1.1. If you report against EN 301 549, run the page through the W3C HTML Validator (validator.w3.org) and record the result; duplicate id attributes that break label-input associations are covered by other criteria (1.3.1, 4.1.2) either way.
Estimated time: ~10 min
Scored: a machine-verifiable check ran on this criterion. Its result counts in the score; human review is still recommended for the aspects a machine cannot judge.
Verification steps
Where to test: The standard pages at https://samplestore.geta11y.com/, especially the page containing the image gallery's 🔍 zoom trigger and pages containing forms or settings.
With a screen reader (or the browser's accessibility inspector), check every custom control — menus, tabs, accordions, toggles, sliders, icon buttons. Verify each announces a meaningful name, the correct role (button, tab, checkbox, …) and its current state (expanded, selected, checked), and that state changes are announced.
Estimated time: ~20 min
Reviewed, not scored: examined by advisory checks or AI review only. No machine-verifiable check exists for it, so it does not count in the score — verify the findings manually.
Verification steps
Where to test: Standard pages containing forms at https://samplestore.geta11y.com/, plus any settings that display feedback or update results without loading a new page.
Trigger actions that show status messages without moving focus — adding items to a cart, form validation errors, search result counts, progress updates, success confirmations. Use a screen reader (or inspect the HTML) to verify these messages are announced automatically. They should use aria-live="polite" or an appropriate ARIA role (role="status", role="alert") so screen readers announce them without the user having to navigate to them.
Estimated time: ~15 min