This is what a client receives after a quick check, shortened for the web. The shop is real and taken from the study; its name is withheld. The numbers, evidence and colour values are the ones the scan produced on 15 September 2026.

Accessibility quick check, sample report

Shop RO-08: homepage against WCAG 2.1 AA

Electronics retailer, Romania, mid-size. Result: not conformant. Five rules fail on 79 elements, ten of them critical. Almost all of it comes from four places in the code.

Client
Shop RO-08 (name withheld)
Date of scan
15 September 2026
Scope of this sample
Homepage, desktop 1366 × 768, automated scan plus structure checks
Standard
WCAG 2.1 level AA via EN 301 549, as required by Legea 232/2022 and the European Accessibility Act
Tools
axe-core 4.13 in Google Chrome, driven by Playwright
Prepared by
Daniel Butnar

1. Summary

Results at a glance
Failed rules (WCAG 2.1 A/AA)5Language declaredyes, ro
Failing elements79Level-one headingnone
Critical10Skip linknone (first link is “back to top”)
Serious69Images395, all with an alt attribute
Needs manual review43HTML elements on the page5,445

The failures are concentrated: one carousel component, one banner template, one search form and three colour values in the theme account for 78 of the 79 failing elements. Fixing those four places fixes the homepage, and because they are shared templates, most of the rest of the site.

Estimated remediation effort: 2 to 4 developer days including re-testing, assuming access to the theme's source. This estimate is for planning; a fixed quote follows once I have seen the code.

2. Priorities

  1. Name the carousel controls. Critical, 9 elements, one component. Finding 1.
  2. Name the search button. Critical, 1 element. Finding 2.
  3. Give the promotional links a name. Serious, 20 elements, one template. Finding 3.
  4. Correct three colour pairs in the theme. Serious, 48 elements. Finding 4.
  5. Underline the footer link. Serious, 1 element. Finding 5.
  6. Add a level-one heading and a skip link. Recommended. Finding 6.

3. Findings

Finding 1: carousel dots have no accessible name

Critical
WCAG 4.1.2 Name, Role, Valueaxe rule button-name9 elementsHero carousel, .owl-dot
Evidence
Each slide indicator is a button containing an empty span. A screen reader announces “button” nine times in a row. The role="button" on a button is redundant.
Effect
Screen-reader and voice-control users cannot tell which slide a control selects or which one is active.
Fix
Add a visually hidden label to each button and mark the active one. If the slider library renders these, the label can be added in its dotsData or an onInitialized callback.
Effort
About one hour.
<!-- as found -->
<button role="button" class="owl-dot"><span></span></button>

<!-- fixed -->
<button type="button" class="owl-dot" aria-current="true">
  <span class="sr-only">Slide 1 of 9</span>
</button>

Finding 2: the search button has no name

Critical
WCAG 4.1.2 Name, Role, Valueaxe rule input-button-name1 elementHeader search, .submit-search
Evidence
The submit button of the site search is an input with an empty value; the magnifying glass is a background image.
Effect
Announced as “button” with no purpose. Voice-control users cannot say “click search”.
Fix
Give the input a value and keep the icon as a background, or switch to a button with hidden text.
Effort
Fifteen minutes.
<!-- as found -->
<input type="submit" value="" class="submit-search">

<!-- fixed -->
<input type="submit" value="Search" class="submit-search">
/* CSS keeps the icon and hides the text visually: */
.submit-search { font-size: 0; color: transparent; background: url(search.svg) center / 20px no-repeat; }

Finding 3: twenty promotional links have no text

Serious
WCAG 2.4.4 Link purpose, 4.1.2axe rule link-name20 elementsPop-up banner and banner grid, /ajax/bannerUrl?bannerId=…
Evidence
Every banner is a link that contains only an image, and the image's alt is empty. The link therefore has no accessible name; screen readers read “link” or the address.
Effect
The campaign content, currently the most prominent thing on the page, is invisible to screen-reader users. Twenty tab stops announce nothing.
Fix
Let the banner template write the campaign title into the image's alt. The text should say where the link goes, not what the picture shows. Banners that are purely decorative should not be links.
Effort
Two hours in the template, plus a title field for each banner in the CMS if it does not exist.
<!-- as found -->
<a href="/ajax/bannerUrl?bannerId=12594"><img src="/banners/12594.jpg" alt=""></a>

<!-- fixed -->
<a href="/ajax/bannerUrl?bannerId=12594">
  <img src="/banners/12594.jpg" alt="Back to school: laptops from 1,499 lei" width="600" height="300">
</a>

Finding 4: 48 text elements below the 4.5:1 contrast minimum

Serious
WCAG 1.4.3 Contrast (minimum)axe rule color-contrast48 elementsMenu, promo strip, product cards
Evidence
Three colour pairs produce all 48 failures.
Colour pairs that fail, with measured contrast and a suggested replacement
WhereColours as foundMeasuredSuggestedResult
Menu link “Servicii”, 15 px#FF0000 on #FFFFFF3.99:1#C40000 on white6.3:1
Instalment promo strip, 20 px#FFFFFF on #F769812.87:1white on #C8102E5.9:1
“In stoc magazin” on product cards, 14.4 px#349900 on #FFFFFF3.68:1#2E7D00 on white5.2:1
Effect
People with low vision, older users and anyone outdoors on a phone cannot read stock status, prices in promotions or the service menu.
Fix
Change the three values where they are defined in the theme. The suggested colours keep the hue and pass AA; the designer may prefer other values as long as they reach 4.5:1.
Effort
Half a day, including a visual check of every place the tokens are used.

Finding 5: footer link is distinguishable only by colour

Serious
WCAG 1.4.1 Use of colouraxe rule link-in-text-block1 elementFooter, “Vezi hartă”
Evidence
The link is #666666 in a paragraph of #999999 text, with no underline. The difference between link and text is 2.01:1; 3:1 is the minimum when colour is the only cue.
Fix
Underline links inside running text. This also solves the finding for every other paragraph link on the site.
Effort
Five minutes.
.footer p a { text-decoration: underline; text-underline-offset: .15em; }

Finding 6: no level-one heading and no skip link

Recommended
WCAG 2.4.1 Bypass blocks, 1.3.1 Info and relationshipsStructure checkWhole page
Evidence
The page has no h1. The first focusable element is a “back to top” link labelled “SUS”, so keyboard users start their journey at the wrong end of the page and have to tab through the entire mega menu to reach the products.
Fix
Add one h1 (the shop's name and tagline is fine on the homepage) and a skip link as the first element in body that points to the main content.
Effort
Half an hour.
<a class="skip" href="#main">Sari la conținut</a>
…
<main id="main" tabindex="-1">

4. Needs manual review

The scanner could not determine the contrast of 43 text elements because they sit on images or gradients (promotional tiles and category headers). In the paid quick check these are measured by hand and either cleared or added to Finding 4.

5. What this sample does not include

This page shows the automated part of a quick check on a single page. The quick check you order adds, for the homepage, a product page and the checkout:

  • a keyboard-only pass: visible focus, focus order, whether the carousel and the mega menu can be operated and escaped, whether autoplay can be paused;
  • a screen-reader pass with NVDA through search, product selection and add-to-basket, and through the checkout forms with deliberately wrong input to hear the error messages;
  • 200 % zoom and a 320 px wide viewport to check reflow;
  • a check of the accessibility statement, if one exists.

6. Next steps

  1. Fix Findings 1 to 5 in the order above; the first two take an afternoon.
  2. I re-test each fix and confirm it in writing. Re-testing is included when I implement the fixes and offered at a fixed price when your team does.
  3. Publish an accessibility statement that names the standard, the known remaining issues and a contact for feedback. I provide the draft in Romanian, German or English.

Daniel Butnar, web developer and accessibility specialist, Brașov. daniel.butnar@gmail.com. Scan date 15 September 2026, axe-core 4.13, WCAG 2.1 A and AA rule set. Automated checks find only part of the barriers; this report makes no claim about criteria that require manual testing.