Sample audits

Three real audits, with the names removed.

This is the actual KindlyDone Tier 1 deliverable — the same report a client receives, shown here on three real Ontario law-firm sites we scored in August 2026. The firms are not named, and never will be.

How to read these

Every site is scored out of 100 against WCAG 2.1 AA and the AODA, using an automated engine plus review by a person. A score is not a pass or a fail — it is a starting position, and the failing checks below are what moves it.

Each finding tells you the same four things a paying client gets: what is wrong in plain language, who it shuts out, the code that causes it, and the code that fixes it. Your own developer applies the fix. We never touch your live site.

Each audit below shows a selection of its findings, not the complete list. Firm names, URLs, page paths and element counts have all been removed, and the code samples are generic illustrations of each problem rather than anything copied from a firm’s site. We publish these to show the shape of the work, not to make any firm identifiable.

Sample A · a mid-size Ontario law firm

KindlyDone score: 72 / 100

Scored against WCAG 2.1 AA and the AODA

Three of the findings from this audit, chosen to show the range. The full report lists every failing check with the count of affected elements.

High impact

A form button has no label

WCAG 4.1.2 (Level A)

A submit or input button has no value or label, so a screen reader cannot tell the visitor what pressing it will do.

Who this affects: Screen reader users filling in forms (contact, search, newsletter).

Before

<input type="submit">

After

<input type="submit" value="Send message">

The fix: Add a clear value attribute (which also shows as the button text), or an aria-label if the text is supplied another way.

High impact

A link has no readable text

WCAG 2.4.4 & 4.1.2 (Level A)

A link on the page has nothing a screen reader can read out, so it is announced only as "link" with no destination. This usually happens with icon-only links or links wrapped around an image with no alt text.

Who this affects: People who use screen readers, who hear the page instead of seeing it.

Before

<a href="/contact"><i class="icon-mail"></i></a>

After

<a href="/contact" aria-label="Contact us"><i class="icon-mail" aria-hidden="true"></i></a>

The fix: Give every link a readable name. Best: add visible text inside the link. If it must stay icon-only, add an aria-label that says where it goes, and mark the icon itself aria-hidden="true". If the link wraps an image, give the image a meaningful alt attribute instead.

Medium impact

List items are not inside a list

WCAG 1.3.1 (Level A)

List items (<li>) appear without a proper <ul>, <ol> or <menu> parent, so a screen reader does not announce "list, 9 items" and the grouping is lost.

Who this affects: Screen reader users who rely on list announcements to understand grouping.

Before

<div class="menu">
  <li>Home</li>
  <li>About</li>
</div>

After

<ul class="menu">
  <li>Home</li>
  <li>About</li>
</ul>

The fix: Wrap related <li> items in a <ul> (unordered) or <ol> (ordered) parent. Often a <div> just needs to become a <ul>.

Sample B · a mid-size Ontario law firm

KindlyDone score: 78 / 100

Scored against WCAG 2.1 AA and the AODA

Three of the findings from this audit, chosen to show the range. The full report lists every failing check with the count of affected elements.

High impact

An image has no alt text

WCAG 1.1.1 (Level A)

An image has no alt attribute, so a screen reader either says nothing or reads out the raw file name.

Who this affects: Screen reader users, and anyone whose images fail to load.

Before

<img src="team-photo.jpg">

After

<img src="team-photo.jpg" alt="Our litigation team outside the courthouse">

The fix: Give informative images a short alt that conveys their meaning. If an image is purely decorative, use alt="" (empty) so screen readers skip it.

High impact

A form button has no label

WCAG 4.1.2 (Level A)

A submit or input button has no value or label, so a screen reader cannot tell the visitor what pressing it will do.

Who this affects: Screen reader users filling in forms (contact, search, newsletter).

Before

<input type="submit">

After

<input type="submit" value="Send message">

The fix: Add a clear value attribute (which also shows as the button text), or an aria-label if the text is supplied another way.

Medium impact

Links are shown only by colour

WCAG 1.4.1 (Level A)

Inline links inside paragraphs are distinguished from normal text only by colour, so someone who cannot perceive that colour cannot tell what is a link.

Who this affects: People with colour blindness or low vision.

Before

a { color: #0a58ca; text-decoration: none; }

After

a { color: #0a58ca; text-decoration: underline; }

The fix: Give inline links a second, non-colour cue - usually an underline. (Clear standalone buttons and nav links are fine without it.)

Sample C · a mid-size Ontario law firm

KindlyDone score: 84 / 100

Scored against WCAG 2.1 AA and the AODA

Three of the findings from this audit, chosen to show the range. The full report lists every failing check with the count of affected elements.

High impact

A link has no readable text

WCAG 2.4.4 & 4.1.2 (Level A)

A link on the page has nothing a screen reader can read out, so it is announced only as "link" with no destination. This usually happens with icon-only links or links wrapped around an image with no alt text.

Who this affects: People who use screen readers, who hear the page instead of seeing it.

Before

<a href="/contact"><i class="icon-mail"></i></a>

After

<a href="/contact" aria-label="Contact us"><i class="icon-mail" aria-hidden="true"></i></a>

The fix: Give every link a readable name. Best: add visible text inside the link. If it must stay icon-only, add an aria-label that says where it goes, and mark the icon itself aria-hidden="true". If the link wraps an image, give the image a meaningful alt attribute instead.

Medium impact

Text is too faint to read

WCAG 1.4.3 (Level AA)

Some text does not stand out enough from its background (contrast below 4.5:1), so it is hard to read.

Who this affects: People with low vision or colour deficiency, and anyone in bright sunlight.

Before

color: #9aa0a6;  /* grey on white ~2.8:1 */

After

color: #5f6368;  /* darker grey ~5.9:1, passes */

The fix: Darken the text (or lighten the background) until normal text reaches at least 4.5:1, and large/bold text at least 3:1. Use a contrast checker to confirm.

Medium impact

A list contains the wrong elements

WCAG 1.3.1 (Level A)

A <ul> or <ol> has elements other than <li> directly inside it, which breaks how assistive tech reads the list.

Who this affects: Screen reader users.

Before

<ul>
  <a href="/a">Link</a>
</ul>

After

<ul>
  <li><a href="/a">Link</a></li>
</ul>

The fix: Make sure only <li> elements (plus <script>/<template>) are direct children of a list. Wrap any stray content in an <li>.

Want this for your own site?

A Tier 1 audit is the full version of what you just read, on every page that matters.

Ask about an audit Get the free fix-it guide