/ Research · Public websites · October 2026

How slow and how accessible are city council websites?

I measured the home pages of the city councils of Spain’s 50 provincial capitals: how long they take on an average phone, how much they weigh, and how they work for someone who cannot see the screen. These are public websites; people need them to book appointments and get certificates.

Websites
50, one per provincial capital
Speed
Lighthouse, simulated phone on slow 4G, 3 runs, median. 4 Oct 2026
Accessibility
axe-core against WCAG 2.1 A and AA, desktop on 4 Oct, mobile on 5 Oct
Checked by hand
Buttons, declarations and 320 px reflow, 6 Oct
Scope
Official home page only
Data
CSV · JSON

Not on this page: blame. I have no data on who built each site or what was asked for, so I do not guess.

The numbers

56median mobile speed score out of 100
17 smedian time to show the main content
5.9 MBmedian home page weight
42/49home pages with WCAG errors on desktop
0declarations claiming full compliance

A national experience, measured

The median mobile score is 56 out of 100 and 11 capitals score under 50. The median home page needs 17 seconds to show its main content; Google calls anything over 4 seconds slow. The median page weighs almost 6 MB and 12 weigh more than 10 MB. Bilbao and Vitoria-Gasteiz were the fastest in this run.

The heaviest home page is Valladolid’s, 34 MB, and it still scores 57: 32 of those megabytes are two videos that download on their own, but the page appears in 13 seconds. Murcia weighs 30 MB, scores 4 and, in the simulation, takes over two minutes. The score measures when you can see and use the page, not how much it weighs.

In Salamanca a single photo of an electric car weighs 21.8 MB, more than 46 of the 50 home pages. In Murcia a press-release photo weighs 5.9 MB. Images uploaded without anyone checking their size.

Using them without seeing the screen

axe found WCAG 2.1 errors on 42 of 49 home pages on desktop (23 with critical errors) and on 46 of 49 on mobile (28 critical). Toledo was down during the desktop run and Huesca during the mobile one. Automated tests only find part of the problems: Deque measured about 57% of issues by volume, so the real picture is worse, not better.

The clearest case: on mobile, the menu button in Donostia, Huelva and Toledo has no name, so a screen reader just says “button”. In Huelva the button does include the text “Toggle navigation” for screen readers, but a mobile CSS rule, .navbar-toggle span { display: none !important }, hides it, and the accessible name ends up empty. In Palma axe flags 146 elements, most of them links without text: service icons whose label sits outside the link.

What fails most (sites with at least one error of each kind, out of 49)/49
Low-contrast text32
Broken ARIA code22
Links without text21
Buttons without a name8
Images without alt text7
Form fields without a label5

At 320 px wide (WCAG 1.4.10, the same as zooming to 400%), 12 sites force horizontal scrolling and 5 do not adapt to mobile at all: Ávila, Granada, Jaén, Soria and Bilbao. Accessibility declarations: 24 say “partially compliant”, none claims full compliance, 6 still cite standards that have been replaced, 13 could not be found from the home page and 7 do not state their level.

Every city, both studies

Score and seconds: Lighthouse mobile, 4 Oct 2026. WCAG: elements failing WCAG 2.1 A/AA according to axe; in red, at least one critical. Empty: not measured (León and Toledo had server errors during the speed run; Toledo and Huesca were down for one of the accessibility runs).
CityScoreSecondsMBWCAG desktopWCAG mobileDeclaration
A Coruña3817.22.754cites replaced standards
Albacete2821.33.810053cites replaced standards
Alicante628.21.400partially compliant
Almería4612.14.71013not found from the home page
Ávila656.91.02828not found from the home page
Badajoz496.76.8178partially compliant
Barcelona5619.45.91719partially compliant
Bilbao813.52.244does not say
Burgos5521.27.2147cites replaced standards
Cáceres5519.422.43848not found from the home page
Cádiz647.11.91111partially compliant
Castellón de la Plana5517.23.11416partially compliant
Ciudad Real5323.59.077does not say
Córdoba5112.614.632partially compliant
Cuenca6112.11.81516partially compliant
Donostia-San Sebastián458.82.4124does not say
Girona5813.42.43135not found from the home page
Granada628.51.144does not say
Guadalajara5916.72.83126does not say
Huelva4623.37.301not found from the home page
Huesca5253.814.818not found from the home page
Jaén6446.28.499not found from the home page
Las Palmas de Gran Canaria2640.915.92724partially compliant
León512not found from the home page
Lleida5539.811.122partially compliant
Logroño4235.919.000does not say
Lugo5619.34.14438not found from the home page
Madrid6314.13.31215partially compliant
Málaga2839.49.3117partially compliant
Murcia4124.230.51412does not say
Ourense626.58.9214partially compliant
Oviedo5814.63.75242not found from the home page
Palencia586.820.901partially compliant
Palma5314.85.6146133cites replaced standards
Pamplona5832.67.8715partially compliant
Pontevedra5410.71.533partially compliant
Salamanca5489.230.411partially compliant
Santa Cruz de Tenerife5338.413.34339partially compliant
Santander5619.13.21417not found from the home page
Segovia5911.31.321partially compliant
Sevilla5626.94.7711partially compliant
Soria697.30.833not found from the home page
Tarragona5132.66.601partially compliant
Teruel6434.59.61717cites replaced standards
Toledo24cites replaced standards
Valencia4927.014.102partially compliant
Valladolid5713.234.234partially compliant
Vitoria-Gasteiz923.11.000partially compliant
Zamora5525.39.03530not found from the home page
Zaragoza6316.65.344partially compliant

What WCAG is, version by version

The Web Content Accessibility Guidelines are the W3C’s technical standard for making websites usable by people with disabilities: blind people using screen readers, people who navigate only with a keyboard, people with low vision, deaf people, people with cognitive disabilities. They are organised around four principles: content must be perceivable, operable, understandable and robust.

Each rule is a “success criterion” with a level: A (the minimum), AA and AAA. Laws ask for level AA, which means meeting every A and AA criterion. No law requires AAA as a whole.

VersionYearWhat it added
WCAG 1.01999The first version, written for the HTML of the time. Replaced.
WCAG 2.02008Technology-neutral rules and the A/AA/AAA levels. Also ISO/IEC 40500:2012.
WCAG 2.1201817 new criteria for mobile, low vision and cognitive needs: reflow at 320 px (1.4.10), contrast of icons and controls (1.4.11), text spacing, screen orientation, pointer gestures, status messages.
WCAG 2.220239 new criteria: focus not hidden behind sticky bars (2.4.11), alternatives to dragging (2.5.7), targets of at least 24 px (2.5.8), help in a consistent place, not asking twice for the same data, and logins without puzzles (3.3.8). Removes 4.1.1 Parsing.
WCAG 3.0draftA full rewrite still in progress at the W3C. Not a standard yet.

A burden? What they ask for, and what they don't

Some people see WCAG as a straitjacket that forces one way of designing. But they don't set colours, typefaces or layouts. They set what people must be able to do: read text with enough contrast, use everything with a keyboard, know what each button is for. How you get there is up to you.

And what they ask for is almost exactly a well-built website, including for people without any disability:

  • Code that lasts. A real button instead of a clickable div, labelled forms, headings in order. It's correct HTML, and it breaks less.
  • Sites machines can understand. Search engines, voice assistants, AI agents and testing tools such as Playwright read that same structure, each element's role and name, to work out what is on the page.
  • Sites that are easier to use. Contrast to read in bright sunlight, captions to watch a video with the sound off, pages that don't break when you zoom in.
  • A criterion you can check. Without WCAG, "accessible" would be an opinion. With it, there is a list you can require when you commission a site and check when it's delivered.

They do have costs, and it's worth saying so: a very light brand palette may not reach the contrast text needs, captioning video takes time, and fixing an old site that was built badly is expensive. Thought about from the start, the cost is much lower.

Which version is mandatory, and where

WhereWhoWhat it requires
Spain, public sectorPublic administration websites and apps (RD 1112/2018, from the EU Web Accessibility Directive 2016/2102)WCAG 2.1 AA through EN 301 549 v3.2.1, an accessibility declaration linked as “Accessibility” from every page, a complaints channel and periodic reviews
Spain, private sectorCertain products and services: e-commerce, banking, transport, e-books, telecoms (Law 11/2023, from the European Accessibility Act 2019/882), applicable since 28 June 2025The same EN 301 549 standard. Micro-enterprises providing services are exempt
European Union, nextBoth of the aboveEN 301 549 v4.1.1, published on 2 September 2026, moves to WCAG 2.2. It becomes binding once cited in the Official Journal of the EU, expected on 16 December 2026
United KingdomPublic sector bodiesWCAG 2.2 AA
United StatesState and local governments (ADA Title II, 2024 rule)WCAG 2.1 AA. An April 2026 interim rule moved the deadlines to April 2027 (50,000+ inhabitants) and April 2028 (smaller entities)

So the 50 city councils in this study have had to meet WCAG 2.1 AA since 2018, and will have to meet 2.2 once the new standard is cited. WCAG is the floor, not the ceiling, and many of these sites do not reach the floor.

How it was measured, and its limits

  • Speed: Lighthouse, the engine behind PageSpeed Insights, on a simulated mid-range phone with slow 4G. Each site three times, median kept, about 150 runs. Re-checked by hand in PageSpeed: most moved less than 10 points; Vitoria moved most, from 92 to 65. Trust the order more than the exact number.
  • Weight is the most stable figure: 30 MB is 30 MB whoever measures it.
  • It is a lab test with a simulated phone, not real-user data, and only the home page.
  • almeria.es belongs to the provincial council, not the city: the right site had to be found by hand.
  • Accessibility: axe-core 4.13 against WCAG 2.1 A and AA. Two detectors were discarded for not being reliable enough: invisible focus and “skip to content”.

Sources: W3C: WCAG overview · What’s new in WCAG 2.2 · EN 301 549 v4.1.1 (Deque) · RD 1112/2018 (BOE) · Law 11/2023 (BOE) · ADA Title II deadlines (JD Supra)

/ Next

I check before I publish.

I wrote the scripts with help from Claude. What to measure, the manual checks and the numbers I threw away were my call. If your team needs that kind of checking, email me.