DEV Community

Calimero
Calimero

Posted on

I audited 12 Italian public-sector websites for accessibility and SEO. Here's what I found.

Method: static HTML audit with an Apify Actor. 15 URLs sampled, 12 returned HTML and were analysed. This is a quick triage, not a full WCAG 2.2 audit.

Why this matters

Italian public-sector websites are used by millions of people, including older citizens and people with low vision. The European Accessibility Act has made accessibility a legal requirement for many digital services. Yet most public bodies still publish pages with missing alternative text, unlabeled form fields or broken heading structures.

I ran a static audit on a small sample of Italian public administration websites to see what a quick, automated triage can catch.

Sample

15 URLs: government, tax agency, social security, statistics, major cities and regions.

  • 12 returned HTML and were analysed.
  • 3 could not be analysed: one returned HTTP 403 to the bot, two timed out.
  • Average score: 81.6 / 100.
  • Best: 97. Worst: 64.

What the audit checks

The Actor runs static checks on each page:

  • <title> and meta description
  • lang on <html>
  • <h1> presence, multiple H1s, heading-level skips
  • images without alt
  • links without accessible text
  • form fields without an associated label
  • viewport meta
  • noindex
  • canonical link
  • thin content
  • JSON-LD structured data

It does not replace a manual WCAG audit. It is a fast way to find the obvious issues before spending hours with a screen reader.

Results

Issue Sites affected Share
Missing canonical 12 / 12 100%
Missing structured data (JSON-LD) 10 / 12 83%
Missing meta description 6 / 12 50%
Multiple <h1> 5 / 12 42%
Heading-level skips 5 / 12 42%
Links without accessible text 5 / 12 42%
Images without alt 3 / 12 25%
Form fields without a label 3 / 12 25%

Aggregate counts:

  • 467 images found; 13 without alt (~2.8%).
  • 121 form fields found; 16 without an associated label (~13%).

What stands out

Canonical is missing everywhere. 12 out of 12. For public-sector sites with multiple domains, aliases and old URLs, this is a real SEO problem: it splits ranking signals and makes duplication harder to control.

Structured data is rare. 10 out of 12 have no JSON-LD at all. For public services, structured data is how search engines understand opening hours, locations, events and FAQs.

Half the sample has no meta description. Search engines will generate their own snippet, often from the first paragraph of the page.

Accessibility issues are concentrated. Only 3 sites have images without alt and 3 have unlabeled form fields, but those that do have multiple instances. The aggregate numbers are small, which suggests that the basics are often handled — the gap is in consistency, not awareness.

The caveat

This is a static audit. It cannot detect:

  • contrast ratios
  • keyboard traps
  • ARIA misuse that only appears at runtime
  • screen-reader behaviour
  • issues introduced by JavaScript

A 25% failure rate on image alt does not mean 25% of the site is inaccessible. It means the quick triage found a fixable issue on 3 of 12 homepages.

How I ran it

I used an Apify Actor that crawls a page, runs the checks and returns one JSON item per page with a score and a list of issues. For a bulk run, the same engine accepts a list of URLs.

The data in this article comes from one run on 15 URLs. The full run took a few minutes.

What I'd fix first

If I were responsible for one of these sites:

  1. Add a canonical URL to every page.
  2. Add a meta description to the templates that lack one.
  3. Run an alt audit on the media library, not just the homepage.
  4. Check every form field has a real <label>.
  5. Add JSON-LD for the organisation and the main services.

None of these require a redesign. They are template-level fixes.


The audit was run with the Website Accessibility & SEO Audit Actor on Apify. The sample is small and public; results are indicative, not a compliance assessment.

Top comments (0)