Skip to the content
OpenClerk
Sign in

ADA Title II · 26 April 2028 for special districts

Is your last agenda ADA compliant?

Drop in one meeting packet. In a few seconds you get the WCAG 2.1 AA failures a machine can prove, the criterion behind each one, and a plain list of what the audit could not check. No account, no sales call.

  • Checks every page of the packet you actually publish, not a sample.
  • Names the WCAG 2.1 AA criterion behind every failure, and says what it could not test.
  • Your file is read and discarded. Nothing is stored but its name, size and the findings.

Audit a packet

A PDF, up to 60 MB. Born-digital packets only for now: a scan has no text in it to check, and the audit says so rather than scoring it.

3 audits per address per day.

What the audit checks

Automated checks reach a minority of real accessibility problems. So this audit is specific about both halves: here is what it reads out of the file, and below it, in the same detail, what it does not. The rest is why a person reviews every document this product publishes.

Structure and order

Whether the file has a tag tree at all and whether it is switched on, whether anything in it is marked as a heading, and whether its tables contain header cells. An untagged PDF has no reading order of its own: a screen reader announces it in whatever order the page was drawn.

Pictures

Every picture in the file, and which of them carry an alternative description. Maps, charts and seals are usually the ones carrying the decision, and usually the ones left silent.

Document basics

Title, whether readers' software is asked to use it, and the document language. Small fields that screen readers lean on, that are one line each to fix, and that almost every packet leaves empty.

Additional features we are working on

A machine can do these. This one does not do them yet, and says so rather than scoring them as passes.

  • Colour contrast of text against its background (1.4.3). Measuring it means rendering every page and sampling pixels under the glyphs, which this audit does not do yet.
  • Whether the tag order of a multi-column page matches the order a sighted reader reads it in (1.3.2). A tagged document can be tagged wrongly, and the audit reports that tags exist, not that they are right.

What is not checked

Not a roadmap. Each of these needs somebody who knows what the document is for, and a tool that scored them would be inventing a result that somebody would then rely on.

  • Whether a description that *is* present describes the picture (1.1.1). An `/Alt` of “image” satisfies the structure and tells a reader nothing; only a person can say which it is.
  • Link text, form fields, and language of individual passages (2.4.4, 3.3.2, 3.1.2). Each needs the document's purpose, which is a judgement.

A clean result from this audit is not a conformance statement, and it never says it is.

From a PDF nobody can read to a record you can hand an auditor

The same packet, at four points in the loop. Every screen below is drawn with the product's own components, not a screenshot: a picture would go stale the week the interface changed.

  1. 1 · It arrives

    council-agenda-2026-11-19.pdf

    Collected from Legistar · 2.4 MB

    Untagged No document title 31 undescribed images
  2. 2 · It is read

    City Council

    19 November 2026 · 6:30 PM · Council Chamber

    • 1. Consent calendar
    • 2. Short-term rental ordinance
    • 3. Appeal, 400 Oak Street
  3. 3 · A person decides

    Reviewed by A. Moreno, City Clerk

    Reading order and headings checked

    Approve and publish

    No key and no automated process can press this.

  4. 4 · The record stands

    Certificate issued

    sha256 7f3a9c2e…b104

    Recomputed every time the page loads, so editing the document and its stored hash together is still caught.

What happens if you go ahead

  1. 1

    We connect your calendar

    Legistar, PrimeGov, or upload if you run neither. Every new packet arrives on its own after that.

  2. 2

    You approve what we produce

    Reading order, headings and descriptions come to a clerk to check. Nothing publishes until a person presses approve. No key and no automated process can.

  3. 3

    Your portal keeps the proof

    An accessible page per meeting, a tagged PDF, and a dated certificate for each one, checkable at its own address.

Flat $299 a month per agency

Every meeting, every packet, unlimited documents. No per-page remediation bill and no percentage of anything. Remediation vendors quote per page because it is their interest for your packets to be long. It is not ours.

  • Every document class, not just agendas: minutes, packets, staff reports, resolutions, ordinances, budgets, notices, forms, bid requests, plans, contracts and newsletters.
  • An accessible HTML version and a tagged PDF for each one, from the packet you already publish.
  • A dated certificate per publication, at its own public address, with the validator versions that checked it.
  • A searchable public page for your agency, with an accessibility statement generated from your own published records.
  • Brown Act posting deadlines on every meeting, computed from its start time, with special meetings read from the title.
  • An intake and fulfilment log for accessible-version requests, which the person who asked can read at their own link.
  • Collection from Legistar and PrimeGov, or upload if you run neither. Unlimited agencies' worth of watching; the fee is per agency you publish for.
  • A person on the other end. No bot answers you and no key approves anything on your behalf.

Not included, because it is not built yet: written descriptions of images. Today a picture with no description is marked as a gap rather than given a guessed one.

Connect your agency

Tell us where you are and a person will answer. This records that you asked us to get in touch, and nothing else.

Questions people actually ask

Does this make us compliant?

No. It does work and it records what was done: accessible versions, checked with named validators, with a dated certificate of what those validators found. None of that is a legal conclusion about your obligations, and you will not find safe-harbour language anywhere in this product, because no such safe harbour exists in the rule.

What happens to the file I upload here?

It is read and discarded. What is kept is the name, the size, the page count and the findings. There is no field on the record a file could go into, and a test asserts that, so adding one would have to be an argument somebody makes rather than a convenience somebody reaches for.

We use Legistar. Do we have to move off it?

No. OpenClerk reads your existing portal on a schedule and leaves it alone. If you run PrimeGov, the same. If you run neither, which most special districts do, documents arrive by upload and that is a supported route rather than a workaround.

What about scanned documents?

A scan is an image of a page with no text in it. There is nothing to read, so it is marked unsupported and says why rather than being scored. That is the honest answer and it is also the one that costs us a sale occasionally: a tool that scored it would be inventing a result somebody would then rely on.

Can a robot approve our documents?

No, and not as a setting. A request carrying an API key is treated as a machine by definition and refused from approval and publication, even where it resolves to a person who would otherwise be allowed. The refusal is raised as an error rather than returned as a value, so a code path that forgets to check cannot quietly publish anyway.

Do you describe the images for us?

Not yet. Today a picture with no description is marked as a gap in the accessible version rather than given a guessed one, because a guessed description is worse than an acknowledged absence: it reads as information. This is the next thing being built, and it is named in the certificate as a known gap in the meantime.

What does it cost if our packets are long?

The same. $299 a month per agency, every meeting, every packet, unlimited documents. There is no per-page bill and no percentage of anything, in the pricing or in the code.