Accessibility Scan Report

Title: Barcelona.cat Issue: #62 Date: 3/25/2026, 1:14:37 AM Duration: 20.6m URLs: 100 / 100 ⚡ Reduced Motion: 100 / 100 URLs

Summary

Issues

  • By Level: A (175), AA (31)
  • By Version (A & AA): WCAG 2.0 (206)
  • By Category: axe-strict (2696) & Others (430)
  • Total: 3126 across 39 unique rules & 2 accessibility engines

By Severity

Critical
Serious
Moderate
Minor

By Role

UX Designer
Visual Designer
Content Author
Front-End Developer

Issues

🎯 Pages with Most Errors

Focus your efforts on these pages to make the biggest impact. Click any error count to filter the rule list below. Numbers in parentheses (+N) indicate findings that cover WCAG criteria already reported by axe.

https://www.barcelona.cat/ca/que-pots-fer-a-bcn/llistat 178
https://www.barcelona.cat/en/what-to-do-in-bcn/montjuic-park/activities/list 159
https://www.barcelona.cat/en/what-to-do-in-bcn/festes-majors 154
https://www.barcelona.cat/en/what-to-do-in-bcn/summer/outdoor-films 123
El portal web oficial de Barcelona | Ajuntament de Barcelona 112
El portal web oficial de Barcelona | Ajuntament de Barcelona 111
The official Barcelona website | Barcelona City Council 111
El portal web oficial de Barcelona | Ayuntamiento de Barcelona 111
https://www.barcelona.cat/ca/que-pots-fer-a-bcn/cultura 98
https://www.barcelona.cat/ca/que-pots-fer-a-bcn/banys-i-platges 96

🔧 Most Common Issues (axe)

25 rules
2080 Moderate axe region: Ensures all page content is contained within landmark regions. Content outside landmarks cannot be found by screen reader users navigating by landmarks.
100 pages affected

Rule Information

Engine: axe

Roles: Front-End Developer, UX Designer

Blocking: No

Affected Pages

Examples

Example 1 View on Page
All page content should be contained by landmarks
Mode: light
<a href="#carousel-capcalera" class="visually-hidden focusable to-main-content" tabindex="1"> Vés al contingut </a>
XPath: .focusable
Example 2 View on Page
All page content should be contained by landmarks
Mode: light
<li>
XPath: #ajuntament--prefooter > .container > ul > li:nth-child(1)
Example 3 View on Page
All page content should be contained by landmarks
Mode: light
<h2>Adreces</h2>
XPath: li:nth-child(2) > h2
Example 4 View on Page
All page content should be contained by landmarks
Mode: light
<p>
XPath: li:nth-child(2) > .llistat > li > p
Example 5 View on Page
All page content should be contained by landmarks
Mode: light
<h2>Contacte</h2>
XPath: li:nth-child(3) > h2
276 Serious axe tabindex: Ensures tabindex attribute values greater than 0 are not used. Positive tabindex values create an unnatural tab order that disorients keyboard users.
100 pages affected

Rule Information

Engine: axe

Roles: Front-End Developer

Blocking: ⚠️ Yes (Task-Blocking)

Affected Pages

Examples

Example 1 View on Page
Elements should not have tabindex greater than zero
Mode: light
<a href="#carousel-capcalera" class="visually-hidden focusable to-main-content" tabindex="1"> Vés al contingut </a>
XPath: .focusable
Example 2 View on Page
Elements should not have tabindex greater than zero
Mode: light
<a href="#main-content" class="visually-hidden focusable to-main-content" tabindex="1"> Skip to main content </a>
XPath: .focusable
Example 3 View on Page
Elements should not have tabindex greater than zero
Mode: light
<a href="#main-content" class="visually-hidden focusable to-main-content" tabindex="1"> Skip to main content </a>
XPath: .focusable
Example 4 View on Page
Elements should not have tabindex greater than zero
Mode: light
<a href="#main-content" class="visually-hidden focusable to-main-content" tabindex="1"> Skip to main content </a>
XPath: .focusable
Example 5 View on Page
Elements should not have tabindex greater than zero
Mode: light
<a href="#carousel-capcalera" class="visually-hidden focusable to-main-content" tabindex="1"> Vés al contingut </a>
XPath: .focusable
100 Moderate axe landmark-no-duplicate-banner: Ensures the page has only one banner landmark (<header> at top level). Multiple banners confuse screen reader users navigating by landmarks.
100 pages affected

Rule Information

Engine: axe

Roles: Front-End Developer, UX Designer

Blocking: No

Affected Pages

Examples

Example 1 View on Page
Document should not have more than one banner landmark
Mode: light
<header id="brand" alias="barcelonacat" brand="barcelonacat_2026-03..." class="v2025 bcnbrand-legac..." data-lwid="19e3126d-e1c9-4f40-9..." data-plausible="bcn0657" data-matomo="beOBY9ep" data-avisos="auto" data-web-cerca="https%3A%2F%2Fwww.ba..." data-web-nom="Barcelona" data-cercador="false">
XPath: #brand
Example 2 View on Page
Document should not have more than one banner landmark
Mode: light
<header id="brand" alias="barcelonacat" brand="barcelonacat_2026-03..." class="v2025 bcnbrand-legac..." data-lwid="19e3126d-e1c9-4f40-9..." data-plausible="bcn0657" data-matomo="beOBY9ep" data-avisos="auto" data-web-cerca="https%3A%2F%2Fwww.ba..." data-web-nom="Barcelona" data-cercador="false">
XPath: #brand
Example 3 View on Page
Document should not have more than one banner landmark
Mode: light
<header id="brand" alias="barcelonacat" brand="barcelonacat_2026-03..." class="v2025 bcnbrand-legac..." data-lwid="19e3126d-e1c9-4f40-9..." data-plausible="bcn0657" data-matomo="beOBY9ep" data-avisos="auto" data-web-cerca="https%3A%2F%2Fwww.ba..." data-web-nom="Barcelona" data-cercador="false">
XPath: #brand
Example 4 View on Page
Document should not have more than one banner landmark
Mode: light
<header id="brand" alias="barcelonacat" brand="barcelonacat_2026-03..." class="v2025 bcnbrand-legac..." data-lwid="19e3126d-e1c9-4f40-9..." data-plausible="bcn0657" data-matomo="beOBY9ep" data-avisos="auto" data-web-cerca="https%3A%2F%2Fwww.ba..." data-web-nom="Barcelona" data-cercador="false">
XPath: #brand
Example 5 View on Page
Document should not have more than one banner landmark
Mode: light
<header id="brand" alias="barcelonacat" brand="barcelonacat_2026-03..." class="v2025 bcnbrand-legac..." data-lwid="19e3126d-e1c9-4f40-9..." data-plausible="bcn0657" data-matomo="beOBY9ep" data-avisos="auto" data-web-cerca="https%3A%2F%2Fwww.ba..." data-web-nom="Barcelona" data-cercador="false">
XPath: #brand
97 Critical axe SC 1.1.1 A Visual image-alt: Ensures every <img> element has alternative text. Without alt text, blind users receive no information about the image's meaning or purpose.
90 pages affected

Rule Information

Engine: axe

Roles: Content Author

Blocking: ⚠️ Yes (Task-Blocking)

WCAG: SC 1.1.1 A

Disabilities affected:
Visual

Affected Pages

Who Is Affected

  • Without Vision 1.0% — ~3,400,000 Americans
  • Limited Vision 2.4% — ~8,100,000 Americans

Examples

Example 1 View on Page
Images must have alternative text
Mode: light
<img src="/images/icons/marker.svg" class="img-marker">
XPath: iframe[height="410px"]
Example 2 View on Page
Images must have alternative text
Mode: light
<img src="/themes/barcelonacat_theme/images/menu/fletxa_1.png">
XPath: .menu-0 > .icona > img
Example 3 View on Page
Images must have alternative text
Mode: light
<img src="/themes/barcelonacat_theme/images/menu/fletxa_3.png">
XPath: .menu-2 > .icona > img
Example 4 View on Page
Images must have alternative text
Mode: light
<img src="/themes/barcelonacat_theme/images/menu/fletxa_3.png">
XPath: .menu-2 > .icona > img
Example 5 View on Page
Images must have alternative text
Mode: light
<img src="/images/icons/marker.svg" class="img-marker">
XPath: iframe[height="410px"]
31 Serious axe SC 1.4.3 AA Visual color-contrast: Ensures text and interactive elements have sufficient contrast ratio (4.5:1 for normal text, 3:1 for large text) against their background.
10 pages affected

Who Is Affected

  • Without Vision 1.0% — ~3,400,000 Americans
  • Limited Vision 2.4% — ~8,100,000 Americans
  • Without Perception of Color 4.3% — ~14,500,000 Americans

Examples

Example 1 View on Page
Elements must meet minimum color contrast ratio thresholds
Mode: light
<a target="_blank" href="../ca/">Plànol</a>
XPath: #iframe-planol
Example 2 View on Page
Elements must meet minimum color contrast ratio thresholds
Mode: light
<div class="time">tarda</div>
XPath: #i-temps
Example 3 View on Page
Elements must meet minimum color contrast ratio thresholds
Mode: light
<a target="_blank" href="../ca/">Plànol</a>
XPath: #iframe-planol
Example 4 View on Page
Elements must meet minimum color contrast ratio thresholds
Mode: light
<a target="_blank" href="../en/">Barcelona map</a>
XPath: #planol-screen > iframe
Example 5 View on Page
Elements must meet minimum color contrast ratio thresholds
Mode: light
<a target="_blank" href="../es/">Plano</a>
XPath: #planol-screen > iframe
20 Moderate axe SC 1.3.1 A Visual Cognitive aria-required-children
20 pages affected

Rule Information

Engine: axe

Roles: Front-End Developer

Blocking: No

WCAG: SC 1.3.1 A

Disabilities affected:
Visual Cognitive

Affected Pages

Who Is Affected

  • Without Vision 1.0% — ~3,400,000 Americans
  • Limited Vision 2.4% — ~8,100,000 Americans
  • Limited Language, Cognitive, and Learning Abilities 4.7% — ~15,900,000 Americans

Examples

Example 1 View on Page
Certain ARIA roles must contain particular children
Mode: light
<div role="menu" class="container list-pano-rollover">
XPath: .list-pano-rollover
Example 2 View on Page
Certain ARIA roles must contain particular children
Mode: light
<div role="menu" class="container list-pano-rollover">
XPath: .list-pano-rollover
Example 3 View on Page
Certain ARIA roles must contain particular children
Mode: light
<div role="menu" class="container list-pano-rollover">
XPath: .list-pano-rollover
Example 4 View on Page
Certain ARIA roles must contain particular children
Mode: light
<div role="menu" class="container list-pano-rollover">
XPath: .list-pano-rollover
Example 5 View on Page
Certain ARIA roles must contain particular children
Mode: light
<div role="menu" class="container list-pano-rollover">
XPath: .list-pano-rollover
14 Moderate axe aria-allowed-role
8 pages affected

Examples

Example 1 View on Page
ARIA role should be appropriate for the element
Mode: light
<form class="d-flex justify-content-md-between align-items-md-center ajuntament-actualitat-filtres" role="region" aria-label="News list dates and number of results per page control" aria-controls="ajuntament-actualitat-noticies">
XPath: .justify-content-md-between
Example 2 View on Page
ARIA role should be appropriate for the element
Mode: light
<h3 class="sr-only" role="status">Showing <span>10</span> results.</h3>
XPath: h3[role="status"]
Example 3 View on Page
ARIA role should be appropriate for the element
Mode: light
<legend aria-expanded="false" role="button" tabindex="0" class="ajuntament-maps-legend">Districts <span aria-hidden="true" title="Desplegar districtes" class="icobcn-fletxa-baix2-l"></span> </legend>
XPath: .ajuntament-maps-fieldset:nth-child(1) > legend
Example 4 View on Page
ARIA role should be appropriate for the element
Mode: light
<legend aria-expanded="true" role="button" tabindex="0" class="ajuntament-maps-legend ajuntament-maps-slided">
XPath: .ajuntament-maps-fieldset:nth-child(2) > legend
Example 5 View on Page
ARIA role should be appropriate for the element
Mode: light
<li districte="1" data-url="https://ajuntament.barcelona.cat/ciutatvella/es/" tabindex="0" role="button"><img src="img/districte_1.jpg" alt="Ciutat Vella"><div class="label"><p class="name">Ciutat Vella</p><p class="barris">4 barrios</p></div></li>
XPath: #fembarri
12 Moderate axe landmark-unique
4 pages affected

Rule Information

Engine: axe

Roles: Front-End Developer

Blocking: No

Affected Pages

Examples

Example 1 View on Page
Landmarks should have a unique role or role/label/title (i.e. accessible name) combination
Mode: light
<div class="llistat-bg-promos slick-initialized slick-slider slick-dotted" role="region" aria-label="carousel">
XPath: .llistat-bg-promos
Example 2 View on Page
Landmarks should have a unique role or role/label/title (i.e. accessible name) combination
Mode: light
<main id="main-content" role="main">
XPath: #main-content
Example 3 View on Page
Landmarks should have a unique role or role/label/title (i.e. accessible name) combination
Mode: light
<nav class="js-main-search">
XPath: #iframe-planol
Example 4 View on Page
Landmarks should have a unique role or role/label/title (i.e. accessible name) combination
Mode: light
<div class="llistat-bg-promos slick-initialized slick-slider slick-dotted" role="region" aria-label="carousel">
XPath: .llistat-bg-promos
Example 5 View on Page
Landmarks should have a unique role or role/label/title (i.e. accessible name) combination
Mode: light
<main id="main-content" role="main">
XPath: #main-content
10 Serious axe SC 4.1.2 A Visual Motor Cognitive frame-title: Ensures <iframe> and <frame> elements have a descriptive title attribute so screen reader users understand what the embedded content contains.
6 pages affected

Rule Information

Engine: axe

Roles: Front-End Developer, Content Author

Blocking: No

WCAG: SC 4.1.2 A

Disabilities affected:
Visual Motor Cognitive

Who Is Affected

  • Without Vision 1.0% — ~3,400,000 Americans
  • Limited Vision 2.4% — ~8,100,000 Americans
  • Limited Manipulation 2.2% — ~7,600,000 Americans
  • Limited Reach and Strength 5.8% — ~19,600,000 Americans
  • Limited Language, Cognitive, and Learning Abilities 4.7% — ~15,900,000 Americans

Examples

Example 1 View on Page
Frames must have an accessible name
Mode: light
<iframe frameborder="0" height="88px" src="https://ajuntament.barcelona.cat/widgets/temps/v3/?lang=ca" width="142px" id="i-temps"></iframe>
XPath: #i-temps
Example 2 View on Page
Frames must have an accessible name
Mode: light
<iframe frameborder="0" height="410px" src="https://com-shi-va.barcelona.cat/ca/api/widget/route" width="100%"></iframe>
XPath: iframe[height="410px"]
Example 3 View on Page
Frames must have an accessible name
Mode: light
<iframe frameborder="0" height="88px" src="https://ajuntament.barcelona.cat/widgets/temps/v3/?lang=ca" width="142px" id="i-temps"></iframe>
XPath: #i-temps
Example 4 View on Page
Frames must have an accessible name
Mode: light
<iframe frameborder="0" height="410px" src="https://com-shi-va.barcelona.cat/ca/api/widget/route" width="100%"></iframe>
XPath: iframe[height="410px"]
Example 5 View on Page
Frames must have an accessible name
Mode: light
<iframe frameborder="0" height="88px" src="https://ajuntament.barcelona.cat/widgets/temps/v3/?lang=en" width="142px" id="i-temps"></iframe>
XPath: #i-temps
8 Critical axe SC 4.1.2 A Visual Motor Cognitive button-name: Ensures buttons have discernible text so screen reader users know what action the button performs.
5 pages affected

Rule Information

Engine: axe

Roles: Front-End Developer, Content Author

Blocking: ⚠️ Yes (Task-Blocking)

WCAG: SC 4.1.2 A

Disabilities affected:
Visual Motor Cognitive

Who Is Affected

  • Without Vision 1.0% — ~3,400,000 Americans
  • Limited Vision 2.4% — ~8,100,000 Americans
  • Limited Manipulation 2.2% — ~7,600,000 Americans
  • Limited Reach and Strength 5.8% — ~19,600,000 Americans
  • Limited Language, Cognitive, and Learning Abilities 4.7% — ~15,900,000 Americans

Examples

Example 1 View on Page
Buttons must have discernible text
Mode: light
<button class="geoLocation"></button>
XPath: #iframe-planol
Example 2 View on Page
Buttons must have discernible text
Mode: light
<button class="geoLocation"></button>
XPath: #iframe-planol
Example 3 View on Page
Buttons must have discernible text
Mode: light
<button class="geoLocation"></button>
XPath: #planol-screen > iframe
Example 4 View on Page
Buttons must have discernible text
Mode: light
<button class="geoLocation"></button>
XPath: #planol-screen > iframe
Example 5 View on Page
Buttons must have discernible text
Mode: light
<button class="geoLocation"></button>
XPath: .geoLocation
4 Moderate axe SC 1.1.1 A Visual aria-progressbar-name
4 pages affected

Rule Information

Engine: axe

Roles: Front-End Developer

Blocking: No

WCAG: SC 1.1.1 A

Disabilities affected:
Visual

Affected Pages

Who Is Affected

  • Without Vision 1.0% — ~3,400,000 Americans
  • Limited Vision 2.4% — ~8,100,000 Americans

Examples

Example 1 View on Page
ARIA progressbar nodes must have an accessible name
Mode: light
<div id="progressbar-carousel-capcalera" class="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="50" style="background-size: 50% 100%;"> <span class="slider__label sr-only">50% completed</span> </div>
XPath: #progressbar-carousel-capcalera
Example 2 View on Page
ARIA progressbar nodes must have an accessible name
Mode: light
<div id="progressbar-carousel-capcalera" class="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="50" style="background-size: 50% 100%;"> <span class="slider__label sr-only">50% completed</span> </div>
XPath: #progressbar-carousel-capcalera
Example 3 View on Page
ARIA progressbar nodes must have an accessible name
Mode: light
<div id="progressbar-carousel-capcalera" class="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="50" style="background-size: 50% 100%;"> <span class="slider__label sr-only">50% completed</span> </div>
XPath: #progressbar-carousel-capcalera
Example 4 View on Page
ARIA progressbar nodes must have an accessible name
Mode: light
<div id="progressbar-carousel-capcalera" class="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="50" style="background-size: 50% 100%;"> <span class="slider__label sr-only">50% completed</span> </div>
XPath: #progressbar-carousel-capcalera
4 Moderate axe SC 4.1.2 A Visual Motor Cognitive aria-prohibited-attr
4 pages affected

Rule Information

Engine: axe

Roles: Front-End Developer

Blocking: No

WCAG: SC 4.1.2 A

Disabilities affected:
Visual Motor Cognitive

Affected Pages

Who Is Affected

  • Without Vision 1.0% — ~3,400,000 Americans
  • Limited Vision 2.4% — ~8,100,000 Americans
  • Limited Manipulation 2.2% — ~7,600,000 Americans
  • Limited Reach and Strength 5.8% — ~19,600,000 Americans
  • Limited Language, Cognitive, and Learning Abilities 4.7% — ~15,900,000 Americans

Examples

Example 1 View on Page
Elements must only use permitted ARIA attributes
Mode: light
<span tabindex="0" class="qualitat-aire-anterior bcn-disabled" aria-label="Anterior"> <i aria-hidden="true" title="Anterior" class="bcn-disabled"></i> </span>
XPath: #qualitat-aire-i
Example 2 View on Page
Elements must only use permitted ARIA attributes
Mode: light
<span tabindex="0" class="qualitat-aire-anterior bcn-disabled" aria-label="Anterior"> <i aria-hidden="true" title="Anterior" class="bcn-disabled"></i> </span>
XPath: #qualitat-aire-i
Example 3 View on Page
Elements must only use permitted ARIA attributes
Mode: light
<span tabindex="0" class="qualitat-aire-anterior bcn-disabled" aria-label="Previous"> <i aria-hidden="true" title="Previous" class="bcn-disabled"></i> </span>
XPath: #qualitat-aire-i
Example 4 View on Page
Elements must only use permitted ARIA attributes
Mode: light
<span tabindex="0" class="qualitat-aire-anterior bcn-disabled" aria-label="Previo"> <i aria-hidden="true" title="Previo" class="bcn-disabled"></i> </span>
XPath: #qualitat-aire-i
4 Moderate axe SC 3.1.1 A Cognitive html-lang-valid
4 pages affected

Rule Information

Engine: axe

Roles: Front-End Developer

Blocking: No

WCAG: SC 3.1.1 A

Disabilities affected:
Cognitive

Affected Pages

Who Is Affected

  • Limited Language, Cognitive, and Learning Abilities 4.7% — ~15,900,000 Americans

Examples

Example 1 View on Page
<html> element must have a valid value for the lang attribute
Mode: light
<html lang="cat" class=" js no-touch geolocation borderimage borderradius textshadow opacity cssgradients svg svgclippaths">
XPath: #iframe-planol
Example 2 View on Page
<html> element must have a valid value for the lang attribute
Mode: light
<html lang="cat" class=" js no-touch geolocation borderimage borderradius textshadow opacity cssgradients svg svgclippaths">
XPath: #iframe-planol
Example 3 View on Page
<html> element must have a valid value for the lang attribute
Mode: light
<html lang="cat" class=" js no-touch geolocation borderimage borderradius textshadow opacity cssgradients svg svgclippaths">
XPath: #planol-screen > iframe
Example 4 View on Page
<html> element must have a valid value for the lang attribute
Mode: light
<html lang="cat" class=" js no-touch geolocation borderimage borderradius textshadow opacity cssgradients svg svgclippaths">
XPath: #planol-screen > iframe
3 Moderate axe SC 4.1.2 A Visual Motor Cognitive aria-command-name
3 pages affected

Rule Information

Engine: axe

Roles: Front-End Developer

Blocking: No

WCAG: SC 4.1.2 A

Disabilities affected:
Visual Motor Cognitive

Who Is Affected

  • Without Vision 1.0% — ~3,400,000 Americans
  • Limited Vision 2.4% — ~8,100,000 Americans
  • Limited Manipulation 2.2% — ~7,600,000 Americans
  • Limited Reach and Strength 5.8% — ~19,600,000 Americans
  • Limited Language, Cognitive, and Learning Abilities 4.7% — ~15,900,000 Americans

Examples

Example 1 View on Page
ARIA commands must have an accessible name
Mode: light
<div class="title" tabindex="-1" role="button"></div>
XPath: #fembarri
Example 2 View on Page
ARIA commands must have an accessible name
Mode: light
<div role="button" class="U26fgb JRtysb ZDSs1 ..." jscontroller="iSvg6e" jsaction="click:cOuCgd; moused..." jsshadow="" aria-disabled="false" tabindex="0" aria-haspopup="true" aria-expanded="false" data-aligntop="true">
XPath: .modal--image
Example 3 View on Page
ARIA commands must have an accessible name
Mode: light
<div title="" role="button" tabindex="0" style="width: 31.7193px; height: 32px; overflow: hidden; position: absolute; cursor: pointer; touch-action: none; left: -78px; top: 24px; z-index: 0;">
XPath: iframe[frameborder="0"]
3 Moderate axe SC 4.1.2 A Visual Motor Cognitive select-name
1 pages affected

Rule Information

Engine: axe

Roles: Front-End Developer

Blocking: No

WCAG: SC 4.1.2 A

Disabilities affected:
Visual Motor Cognitive

Affected Pages

Who Is Affected

  • Without Vision 1.0% — ~3,400,000 Americans
  • Limited Vision 2.4% — ~8,100,000 Americans
  • Limited Manipulation 2.2% — ~7,600,000 Americans
  • Limited Reach and Strength 5.8% — ~19,600,000 Americans
  • Limited Language, Cognitive, and Learning Abilities 4.7% — ~15,900,000 Americans

Examples

Example 1 View on Page
Select element must have an accessible name
Mode: light
<select class="districtsrc" name="districtstr" id="districtsrc" tabindex="-98">
XPath: #districtsrc
Example 2 View on Page
Select element must have an accessible name
Mode: light
<select name="ctg" id="ctg" class="" tabindex="-98">
XPath: #ctg
Example 3 View on Page
Select element must have an accessible name
Mode: light
<select id="entradatipus" name="ticket" class="" tabindex="-98">
XPath: #entradatipus
3 Serious axe SC 1.3.1 A Visual Cognitive listitem: Ensures <li> elements are contained within a <ul> or <ol>. List items outside lists lose their structural meaning for screen reader users.
1 pages affected

Rule Information

Engine: axe

Roles: Content Author, Front-End Developer

Blocking: No

WCAG: SC 1.3.1 A

Disabilities affected:
Visual Cognitive

Who Is Affected

  • Without Vision 1.0% — ~3,400,000 Americans
  • Limited Vision 2.4% — ~8,100,000 Americans
  • Limited Language, Cognitive, and Learning Abilities 4.7% — ~15,900,000 Americans

Examples

Example 1 View on Page
<li> elements must be contained in a <ul> or <ol>
Mode: light
<li class="pager__item pager__previous">
XPath: .pager__previous
Example 2 View on Page
<li> elements must be contained in a <ul> or <ol>
Mode: light
<li class="pager__item pager__current"><div class="js-form-item form-item js-form-type-item form-item- js-form-item- form-no-label"> March 2026 </div> </li>
XPath: .pager__current
Example 3 View on Page
<li> elements must be contained in a <ul> or <ol>
Mode: light
<li class="pager__item pager__next">
XPath: .pager__next
2 Moderate axe image-redundant-alt
2 pages affected

Rule Information

Engine: axe

Roles: Front-End Developer

Blocking: No

Examples

Example 1 View on Page
Alternative text of images should not be repeated as text
Mode: light
<img loading="lazy" src="/sites/default/files/styles/distribuidora_banner_paginat/public/vedebcn_250x250.jpg?itok=sI_-hMsI" width="250" height="250" alt="ve de barcelona">
XPath: img[alt="ve de barcelona"]
Example 2 View on Page
Alternative text of images should not be repeated as text
Mode: light
<img src="img/districte_1.jpg" alt="Ciutat Vella">
XPath: #fembarri
2 Moderate axe empty-heading
2 pages affected

Rule Information

Engine: axe

Roles: Front-End Developer

Blocking: No

Examples

Example 1 View on Page
Headings should not be empty
Mode: light
<h3 dir="ltr">&nbsp;</h3>
XPath: h3:nth-child(3)
Example 2 View on Page
Headings should not be empty
Mode: light
<h1 class="descripcion-Title"></h1>
XPath: .widgetCartelleraIF
2 Moderate axe heading-order: Ensures heading levels are not skipped (e.g. h1→h3). Inconsistent heading hierarchy makes page structure difficult to navigate for screen reader users.
1 pages affected

Rule Information

Engine: axe

Roles: Content Author, UX Designer

Blocking: No

Affected Pages

Examples

Example 1 View on Page
Heading levels should only increase by one
Mode: light
<h3><i class="bcn-icon-cerca"></i>Troba les activitats d'aquest cap de setmana:</h3>
XPath: div > h3
Example 2 View on Page
Heading levels should only increase by one
Mode: light
<h3 class="movieInfo-Title"></h3>
XPath: .widgetCartelleraIF
2 Moderate axe empty-table-header
1 pages affected

Rule Information

Engine: axe

Roles: Front-End Developer

Blocking: No

Examples

Example 1 View on Page
Table header text should not be empty
Mode: light
<th scope="col"></th>
XPath: th:nth-child(1)
Example 2 View on Page
Table header text should not be empty
Mode: light
<th scope="col"></th>
XPath: th:nth-child(4)
1 Critical axe SC 2.4.4, SC 4.1.2 A Visual Motor Cognitive area-alt: Ensures <area> elements of image maps have descriptive alternative text so screen reader users understand the link destination.
1 pages affected

Rule Information

Engine: axe

Roles: Content Author, UX Designer

Blocking: ⚠️ Yes (Task-Blocking)

WCAG: SC 2.4.4, SC 4.1.2 A

Disabilities affected:
Visual Motor Cognitive

Who Is Affected

  • Without Vision 1.0% — ~3,400,000 Americans
  • Limited Vision 2.4% — ~8,100,000 Americans
  • Limited Manipulation 2.2% — ~7,600,000 Americans
  • Limited Reach and Strength 5.8% — ~19,600,000 Americans
  • Limited Language, Cognitive, and Learning Abilities 4.7% — ~15,900,000 Americans

Examples

Example 1 View on Page
Active <area> elements must have alternative text
Mode: light
<area shape="poly" alt="" coords="580,500,584,501,597,..." href="#" districte="1">
XPath: #fembarri
1 Serious axe SC 1.3.1 A Visual Cognitive list: Ensures <ul> and <ol> contain only <li> elements. Invalid list structure prevents screen readers from announcing list item counts and navigation shortcuts.
1 pages affected

Rule Information

Engine: axe

Roles: Content Author, Front-End Developer

Blocking: No

WCAG: SC 1.3.1 A

Disabilities affected:
Visual Cognitive

Who Is Affected

  • Without Vision 1.0% — ~3,400,000 Americans
  • Limited Vision 2.4% — ~8,100,000 Americans
  • Limited Language, Cognitive, and Learning Abilities 4.7% — ~15,900,000 Americans

Examples

Example 1 View on Page
<ul> and <ol> must only directly contain <li>, <script> or <template> elements
Mode: light
<ul class="districtes_menu">
XPath: #fembarri
1 Moderate axe SC 4.1.2 A Visual Motor Cognitive nested-interactive
1 pages affected

Rule Information

Engine: axe

Roles: Front-End Developer

Blocking: No

WCAG: SC 4.1.2 A

Disabilities affected:
Visual Motor Cognitive

Who Is Affected

  • Without Vision 1.0% — ~3,400,000 Americans
  • Limited Vision 2.4% — ~8,100,000 Americans
  • Limited Manipulation 2.2% — ~7,600,000 Americans
  • Limited Reach and Strength 5.8% — ~19,600,000 Americans
  • Limited Language, Cognitive, and Learning Abilities 4.7% — ~15,900,000 Americans

Examples

Example 1 View on Page
Interactive controls must not be nested
Mode: light
<button class="platges-button platges-transports-control">
XPath: .platges-button

🔧 Most Common Issues (QualWeb)

14 rules
100 Moderate qualweb QW-ACT-R30: The complete visible text content of the test target neither matches or is contained within its accessible name.
100 pages affected

Rule Information

Engine: qualweb

Roles: Front-End Developer

Blocking: No

Affected Pages

Examples

Example 1 View on Page
The complete visible text content of the test target neither matches or is contained within its accessible name.
Mode: light
Example 2 View on Page
The complete visible text content of the test target neither matches or is contained within its accessible name.
Mode: light
Example 3 View on Page
The complete visible text content of the test target neither matches or is contained within its accessible name.
Mode: light
Example 4 View on Page
The complete visible text content of the test target neither matches or is contained within its accessible name.
Mode: light
Example 5 View on Page
The complete visible text content of the test target neither matches or is contained within its accessible name.
Mode: light
100 Moderate qualweb QW-ACT-R37: Element has contrast ratio lower than minimum.
100 pages affected

Rule Information

Engine: qualweb

Roles: Front-End Developer

Blocking: No

Affected Pages

Examples

Example 1 View on Page
Element has contrast ratio lower than minimum.
Mode: light
Example 2 View on Page
Element has contrast ratio lower than minimum.
Mode: light
Example 3 View on Page
Element has contrast ratio lower than minimum.
Mode: light
Example 4 View on Page
Element has contrast ratio lower than minimum.
Mode: light
Example 5 View on Page
Element has contrast ratio lower than minimum.
Mode: light
100 Moderate qualweb QW-ACT-R76: Element has contrast ratio lower than minimum.
100 pages affected

Rule Information

Engine: qualweb

Roles: Front-End Developer

Blocking: No

Affected Pages

Examples

Example 1 View on Page
Element has contrast ratio lower than minimum.
Mode: light
Example 2 View on Page
Element has contrast ratio lower than minimum.
Mode: light
Example 3 View on Page
Element has contrast ratio lower than minimum.
Mode: light
Example 4 View on Page
Element has contrast ratio lower than minimum.
Mode: light
Example 5 View on Page
Element has contrast ratio lower than minimum.
Mode: light
86 Moderate qualweb QW-ACT-R17: The test target doesn't have an accessible name.
86 pages affected

Rule Information

Engine: qualweb

Roles: Front-End Developer

Blocking: No

Affected Pages

Examples

Example 1 View on Page
The test target doesn't have an accessible name.
Mode: light
Example 2 View on Page
The test target doesn't have an accessible name.
Mode: light
Example 3 View on Page
The test target doesn't have an accessible name.
Mode: light
Example 4 View on Page
The test target doesn't have an accessible name.
Mode: light
Example 5 View on Page
The test target doesn't have an accessible name.
Mode: light
20 Moderate qualweb QW-ACT-R38: The test target owns elements that doesn't have the correct role.
20 pages affected

Rule Information

Engine: qualweb

Roles: Front-End Developer

Blocking: No

Affected Pages

Examples

Example 1 View on Page
The test target owns elements that doesn't have the correct role.
Mode: light
Example 2 View on Page
The test target owns elements that doesn't have the correct role.
Mode: light
Example 3 View on Page
The test target owns elements that doesn't have the correct role.
Mode: light
Example 4 View on Page
The test target owns elements that doesn't have the correct role.
Mode: light
Example 5 View on Page
The test target owns elements that doesn't have the correct role.
Mode: light
9 Moderate qualweb QW-ACT-R19: The test target accessible name doesn't exist or it's empty ('').
9 pages affected

Examples

Example 1 View on Page
The test target accessible name doesn't exist or it's empty ('').
Mode: light
Example 2 View on Page
The test target accessible name doesn't exist or it's empty ('').
Mode: light
Example 3 View on Page
The test target accessible name doesn't exist or it's empty ('').
Mode: light
Example 4 View on Page
The test target accessible name doesn't exist or it's empty ('').
Mode: light
Example 5 View on Page
The test target accessible name doesn't exist or it's empty ('').
Mode: light
4 Moderate qualweb QW-ACT-R35: The test target accessible name doesn't exist or it's empty ('').
4 pages affected

Rule Information

Engine: qualweb

Roles: Front-End Developer

Blocking: No

Examples

Example 1 View on Page
The test target accessible name doesn't exist or it's empty ('').
Mode: light
Example 2 View on Page
The test target accessible name doesn't exist or it's empty ('').
Mode: light
Example 3 View on Page
The test target accessible name doesn't exist or it's empty ('').
Mode: light
Example 4 View on Page
The test target accessible name doesn't exist or it's empty ('').
Mode: light
4 Moderate qualweb QW-ACT-R12: The test target doesn't have an accessible name, or it's empty ('').
4 pages affected

Rule Information

Engine: qualweb

Roles: Front-End Developer

Blocking: No

Examples

Example 1 View on Page
The test target doesn't have an accessible name, or it's empty ('').
Mode: light
Example 2 View on Page
The test target doesn't have an accessible name, or it's empty ('').
Mode: light
Example 3 View on Page
The test target doesn't have an accessible name, or it's empty ('').
Mode: light
Example 4 View on Page
The test target doesn't have an accessible name, or it's empty ('').
Mode: light
2 Moderate qualweb QW-ACT-R13: The test target has focusable children.
2 pages affected

Rule Information

Engine: qualweb

Roles: Front-End Developer

Blocking: No

Examples

Example 1 View on Page
The test target has focusable children.
Mode: light
Example 2 View on Page
The test target has focusable children.
Mode: light
1 Moderate qualweb QW-ACT-R11: The test target doesn't have an accessible name, or it's empty ('').
1 pages affected

Rule Information

Engine: qualweb

Roles: Front-End Developer

Blocking: No

Examples

Example 1 View on Page
The test target doesn't have an accessible name, or it's empty ('').
Mode: light
1 Moderate qualweb QW-ACT-R48: The test target is in the accessibility tree.
1 pages affected

Rule Information

Engine: qualweb

Roles: Front-End Developer

Blocking: No

Examples

Example 1 View on Page
The test target is in the accessibility tree.
Mode: light
1 Moderate qualweb QW-ACT-R14: The `meta` element with a `name='viewport'` attribute abolishes the user agent ability to zoom with user-scalable=no or maximum-scale < 2.
1 pages affected

Rule Information

Engine: qualweb

Roles: Front-End Developer

Blocking: No

Affected Pages

Examples

Example 1 View on Page
The `meta` element with a `name='viewport'` attribute abolishes the user agent ability to zoom with user-scalable=no or maximum-scale < 2.
Mode: light
1 Moderate qualweb QW-ACT-R16: The test target accessible name doesn't exist or it's empty ('').
1 pages affected

Rule Information

Engine: qualweb

Roles: Front-End Developer

Blocking: No

Affected Pages

Examples

Example 1 View on Page
The test target accessible name doesn't exist or it's empty ('').
Mode: light
1 Moderate qualweb QW-ACT-R65: The element has descendants in the flat tree that are part of sequential focus navigation.
1 pages affected

Rule Information

Engine: qualweb

Roles: Front-End Developer

Blocking: No

Examples

Example 1 View on Page
The element has descendants in the flat tree that are part of sequential focus navigation.
Mode: light