Skip to content

RACE1

RACE1 is an accessibility service for websites. It fixes the problems that have one right answer, flags the ones that need a person, and keeps an honest record of both.

It works on the HTML your server sends, before a visitor ever sees the page. There’s no toolbar, no widget, and no guessing.

RACE1 works on your live site, every time a page changes, so it catches the problems that show up long after launch, like an image added to a blog post without a description.

the principle

We fix the structure. You supply the meaning.

Some accessibility problems are purely structural: a form field with no label, a table without headers, a page with no language set. RACE1 finds and fixes those automatically.

Others depend on what your content says: what an image shows, where a link leads, what an abbreviation stands for. Only you know that, so RACE1 flags each one and shows you exactly where it is.

Take images. RACE1 can tell, reliably, that a tiny spacer graphic is decorative, so it marks it for screen readers to skip. It can’t tell what your homepage photo shows, so it flags the photo for you. It will never write a description it made up, because a wrong description is worse than a missing one.

No tool can make a site accessible on its own. RACE1 makes your part easier.

auto-fixed

Fixed automatically

These are applied to your pages as they’re served. Each one is a fix with a single right answer.

  • Screen readers know your page’s language. RACE1 adds the page language from your site’s language setting, so words are pronounced correctly. If the language can’t be determined, the page is flagged for you instead. WCAG 3.1.1
  • Decorative images are skipped. Spacer graphics, tracking pixels, and images already described elsewhere are marked so screen readers don’t announce them. Every other image without a description is flagged, never guessed. WCAG 1.1.1
  • Form fields have labels. When a field has placeholder text but no real label, RACE1 turns the placeholder into one. Fields with neither are flagged. WCAG 1.3.1, 4.1.2
  • Visitors can jump to your main content. RACE1 marks the main content area if your theme doesn’t already, so screen reader users can go straight to it. WCAG 1.3.1, 2.4.1
  • Keyboard users can skip the navigation. RACE1 adds a “Skip to content” link, unless your theme already has one. It’s hidden until a keyboard user presses Tab. WCAG 2.4.1
  • Data tables read correctly. Tables that already have header cells get the markup screen readers need to connect each cell to its header. Tables without header cells are flagged rather than guessed at. WCAG 1.3.1
  • Embedded content is identified. Untitled embeds, like videos and maps, get a title naming their source, such as “example.com embedded content.” It identifies where the content comes from, not what it is, so RACE1 marks this as a partial fix and suggests a better title. WCAG 2.4.1, 4.1.2
  • Browsers can fill in forms. Common personal-information fields, like name and email, get the markup browsers need to autofill them correctly. Only clear matches are changed; unclear fields are flagged. WCAG 1.3.5
flagged for review

Flagged for a person

These need judgment about your content, so RACE1 finds them and tells you exactly where they are. It never rewrites your wording or restructures your pages.

  • Headings out of order. Skipped heading levels, and pages with no main heading or more than one. WCAG 1.3.1, 2.4.6
  • Unclear links. Links like “click here,” and links with no readable name at all. Only you know what a link should say. WCAG 2.4.4
  • Sections without headings. Page sections that have no heading to identify them. WCAG 2.4.10, Level AAA
  • Abbreviations without an explanation. Abbreviations marked in your HTML that don’t say what they stand for. Each one is listed once, however often it appears. WCAG 3.1.4, Level AAA
  • Possible abbreviations. An optional, lower-confidence check for capitalized words in your text that might be abbreviations. It will sometimes flag brand names and product codes, so it’s off by default. WCAG 3.1.4, Level AAA

You’ll also see flags for the cases the automatic fixes won’t guess at: images that need a real description, form fields with no label or placeholder, tables with no header cells, unclear form fields, and pages whose language can’t be determined.

Every flag comes with the page, the rule, the WCAG criterion, and the element involved, so you can go straight to it.

the record

A record you can stand behind

Fixing problems is useful. Being able to show your work, months later, is what matters when someone asks.

RACE1’s free WordPress plugin keeps that record, in your own WordPress database:

  • A findings history. Each issue is tracked from the day it was first found, through every scan that confirms it, to the day it’s resolved. Rescanning doesn’t create duplicates, and fixing something doesn’t erase that it existed. “When did this appear, and how long was it open?” always has an answer.
  • Two views of every page. An Archive view keeps a snapshot from the moment an issue was found, and never changes. A Working view shows the live page as it is now. Both highlight the issues in place.
  • A tamper-evident audit trail. Every discovery, resolution, and reopening is recorded in a chained log. Changing any past entry breaks the chain, so it shows. Retention is locked at seven years, so records can’t quietly expire early. An administrator can still delete the whole log deliberately, with a confirmation step; what they can’t do is edit it without it showing.
  • A draft Accessibility Conformance Report. A Word document in the standard format, covering all 50 WCAG 2.1 A and AA criteria and plainly marking the ones RACE1 doesn’t evaluate. It’s a starting point for a qualified reviewer, and it says so on the first page.
  • CSV export, and control over your data. Export, import, and delete each kind of data separately, and set your own automatic cleanup.
A sentence on a web page outlined in orange with a numbered marker, showing where RACE1 flagged an abbreviation that needs an expansion.

An issue highlighted in place, where it appears on the page.

If you use RACE1 through the API instead of the plugin, every response includes the full list of findings as data, so you can build your own records and reports.

how it behaves

How it behaves

Your site keeps working if we don’t. If RACE1’s service is ever unreachable, your pages are served exactly as they were, without RACE1’s fixes. The worst case is that RACE1 acts as if it isn’t installed. We tested this against five different kinds of failure before release.

It stays out of your way. One request, one result. The plugin remembers each page, so it only sends a page to us when its content has changed. Most page views never reach us at all.

You pay when your content changes, not when someone loads the page, whether that’s a visitor or you. See pricing.

You decide what gets processed. Every page is covered by default, and you can exclude any page with one setting. Pages that show a visitor’s own details, like checkout and account pages, are worth excluding: the plugin keeps a snapshot of each scanned page in your database, and excluded pages aren’t fixed or stored.

Your pages pass through; they don’t stay. We process each page during the request and keep no copy of your pages or your findings. We keep only account details and request counts, for billing.

If your fixes ever pause, you’ll know. If your transactions run out, a notice appears across your WordPress dashboard. You won’t find out from a visitor.

works with anything

Works with anything that can send HTML

RACE1 is a service, reached through an API. Send a page’s HTML, and get back the fixed version and a list of what was found and changed.

If you run WordPress, our free plugin is a complete client, ready to use. It connects to the service, keeps the record, and turns the findings into the dashboard, history, and reports the people you answer to will want to see. No code required.

And the code that runs on your server is yours. The plugin is open source, under the same license as WordPress itself. Read it, change it, or write your own client in whatever you already use. Everything on your side stays with you.

the limits

What RACE1 doesn’t do

We’d rather you know this now than discover it later.

RACE1 covers 8 of the 50 WCAG 2.1 Level A and AA success criteria, plus 2 at Level AAA. The other 42 aren’t evaluated, partially or otherwise.

Among the things it doesn’t check: color contrast, keyboard operation, focus order and visibility, captions and audio description, how pages reflow and resize, form error messages, consistent navigation, and status messages. No automated tool, including ours, can find every accessibility problem, and many of the most important ones need a person to judge.

It isn’t a compliance guarantee. RACE1 improves your site on the criteria it covers. It can’t tell you whether your site meets a law or a standard, and nothing it produces should be presented that way.

The conformance report is a draft. It’s built from real scan data, but it’s a starting point for a qualified reviewer, not a finished claim.

Some current limitations

  • Text RACE1 adds to your pages, like the skip link, is in English for now. It uses WordPress’s own translation system, so translations will come from native speakers as the community contributes them, rather than from us guessing. If you use the API directly, you can send your own wording with each request, and RACE1 uses it exactly as given.
  • Turning a rule off in the plugin hides its findings from your reports. The fix that rule makes is still applied to your pages.
  • Scheduled cleanup runs on WordPress’s built-in scheduler, which only runs when someone visits your site. On a quiet site, it can run late. That’s standard WordPress behavior, with a standard fix.
in short

In short

RACE1 fixes the accessibility problems that have one right answer, flags the ones that need a person, keeps an honest record of both, and tells you plainly what it hasn’t looked at.