About this proposal
Built accessible, not audited later
What this is, what we measured, and what it would replace.
What this is
A working proposal for the City of Edinburg, not the city's website. It was built to be looked at rather than described: every page here is real HTML the city could serve tomorrow, in both languages, produced by the same build that makes the council record, the fleet map and the two apps.
What we measured on the city's site
Taken 7 September 2026 with axe-core in a real browser, against WCAG 2.0 and 2.1 at levels A and AA — the same engine most paid audits run underneath. These are real numbers from the live site, not a characterisation of it, and the raw run is in the repository behind this page.
| Page | Issue types | Elements failing | Downloaded | Requests | Worst rule |
|---|---|---|---|---|---|
| The home page | 2 | 3 | 22.9 MB | 219 | aria-prohibited-attr |
| City Council | 1 | 1 | 1.7 MB | 127 | list |
| Agendas and minutes | 1 | 1 | 1.6 MB | 129 | list |
| Departments | 1 | 1 | 1.9 MB | 136 | list |
Being fair about it
By the automated count the city's site does well: three failing elements on the home page and one on each interior page we tested. It is not a disaster and this proposal does not pretend it is. But a scanner only sees what it can name, and the two things that would actually stop a resident here are both things it cannot count.
- 40 of the 68 pictures the home page loads are posters, and their words are pixels. On the front page a job fair, a concert, a sandbag distribution and a hurricane briefing are each represented by nothing but their poster, and the date, the hour and the address live inside it as pixels. A screen reader reads nothing from them, a search finds nothing in them, they cannot be translated, and they blur the moment anyone enlarges the page. Worse, they are drawn as CSS background images, which cannot carry alternative text at all — so there is no attribute anywhere for a vendor or a widget to fill in. To be fair to the city: open one of those items and the text is there, written properly. The front page simply does not show it, and the front page is where most people stop.
- The home page downloads 23 MB, and 21 MB of that is those pictures. Over 219 requests, to draw thumbnails a few hundred pixels wide from files sent at full size — one of them a two-megabyte calendar picture. On a phone on a metered plan north of Monte Cristo Road, that is the page not loading. This whole site — both languages, all 134 pages, every photograph and every font — is 3.8 MB on disk, which is less than one visit to that one page.
- The page already carries 12 third-party hosts, two of them selling accessibility. An overlay widget from cdn.userway.org and a document-accessibility service at docaccess.com are both loaded on the front page, alongside YouTube, Google Translate, Google Tag Manager and a chat assistant. That is the shape of the problem: accessibility bought twice, from outside, running on top of markup neither product can reach — and it did not fix a single one of the posters above.
- Automated testing catches about a third of real barriers. Which is the honest argument for building it in rather than testing it afterwards: the two-thirds a scanner cannot see — the posters above among them — are decided while the page is being written, and cannot be bolted on later by anybody.
The same city, a fortieth of the weight
Every photograph on this site was published by the City of Edinburg — Veterans War Memorial Park, the Arts, Culture & Event Center sign on McIntyre, a police officer at the door of his unit, and a building going up on the north side. Cropped and re-encoded to the sizes the pages actually request, this front page weighs 607 KB in a real browser — measured the same way the city's 22.9 MB was — over eighteen requests, all to one host, with nothing third-party on the page at all.
What is deliberately not used is most of the rest. Nineteen of the sixty-eight pictures the city's front page loads are photographs; forty are event posters with the date, the address and the phone number set as pixels inside a JPEG. A screen reader gets nothing from those, a search finds nothing in them, and they cannot be translated. Using them as decoration on this page would contradict the page.
The same notices, as text
Rather than describe the difference, this build makes it. Six of the city’s own notices are published here in full — 4 of them the ones the front page shows as nothing but a poster. Every headline, date, hour, address, phone number and quotation is the city’s, reproduced rather than invented, in English and in Spanish.
What it replaces
Today
Two accessibility products bolted on after the build
Instead
A conformance check that runs on every build and blocks the deploy when it fails — no widget, no vendor.
Today
Forty posters whose date and address exist only as pixels
Instead
An event is a few lines of text with a date, a place and a link. The picture beside it carries none of the meaning.
Today
Agendas and minutes inside a document viewer
Instead
Meetings published as text: every motion, every roll call by name, searchable and translatable.
Today
Twenty-three megabytes on the front page
Instead
The city's own photographs, cropped and re-encoded, at about a fortieth of the weight.
Today
A fleet system only Public Works can see
Instead
One map for staff and one screen for the resident, from the same record.
Today
Spanish as a translation plugin
Instead
Spanish written, with its own URLs, shipping in the same build as English.
What is real here and what is not
Real: the city's seal and motto, the mayor, the city manager, the four council members, all 34 departments with the slugs the city's own site uses, the population, the founding year, the geography of every facility on the map, the photographs, the Texas statutes cited on the meeting page, and every accessibility measurement above.
Invented: every agenda item, motion, vote, dollar amount, speaker, service request, vehicle position and maintenance record. They are shaped like a city of this size, and every page that shows one says so.