EAA Compliance Checklist: EN 301 549 Web Requirements
Complete checklist for European Accessibility Act compliance. All EN 301 549 Chapter 9 (web content) requirements mapped to WCAG 2.2, with automated vs manual testing indicators.
Quick Reference: EN 301 549 at a Glance
Understanding EN 301 549 and the EAA
The European Accessibility Act (EAA) requires digital products and services sold to EU consumers to be accessible. The technical standard it references is EN 301 549, which incorporates WCAG 2.1 Level AA for web content.
EN 301 549 Chapter 9 covers web content requirements. The clause numbers directly correspond to WCAG: EN 301 549 clause 9.X.Y.Z maps to WCAG X.Y.Z. For example, EN 301 549 clause 9.1.4.3 corresponds to WCAG 1.4.3 (Contrast).
How to Use This Checklist
- Automated requirements can be detected by scanning tools (inclly catches these)
- Manual requirements require human judgment and testing
Each requirement shows both the EN 301 549 clause number (for EU compliance documentation) and the corresponding WCAG criterion (for technical implementation).
9.1 Perceivable
Information and user interface components must be presentable to users in ways they can perceive.
Non-text Content
Level AAll non-text content that is presented to the user has a text alternative that serves the equivalent purpose.
How to Fix
- -Add alt text to all informative images
- -Use empty alt="" for decorative images
- -Provide text alternatives for complex graphics
Audio-only and Video-only (Prerecorded)
Level AProvide alternatives for time-based media: transcripts for audio, audio description or text for video.
How to Fix
- -Create transcripts for podcasts
- -Add audio descriptions for video-only content
Captions (Prerecorded)
Level ACaptions are provided for all prerecorded audio content in synchronized media.
How to Fix
- -Add synchronized captions to all videos with audio
- -Include speaker identification
Audio Description or Media Alternative
Level AAn alternative for time-based media or audio description is provided for prerecorded video content.
How to Fix
- -Provide audio descriptions for visual-only information in videos
Audio Description (Prerecorded)
Level AAAudio description is provided for all prerecorded video content.
How to Fix
- -Add audio descriptions narrating visual elements during natural pauses
Info and Relationships
Level AInformation, structure, and relationships conveyed through presentation can be programmatically determined.
How to Fix
- -Use semantic HTML
- -Associate labels with form inputs
- -Use proper table markup
Meaningful Sequence
Level AWhen the sequence in which content is presented affects its meaning, a correct reading sequence can be programmatically determined.
How to Fix
- -Ensure DOM order matches visual order
- -Test with CSS disabled
Sensory Characteristics
Level AInstructions provided for understanding and operating content do not rely solely on sensory characteristics.
How to Fix
- -Avoid "click the green button" or "see the sidebar"
- -Use multiple identifying features
Orientation
Level AAContent does not restrict its view and operation to a single display orientation.
How to Fix
- -Support both portrait and landscape orientations
- -Only restrict if essential
Identify Input Purpose
Level AAThe purpose of each input field collecting information about the user can be programmatically determined.
How to Fix
- -Use autocomplete attributes on personal information fields
- -e.g., autocomplete="email"
Use of Color
Level AColor is not used as the only visual means of conveying information.
How to Fix
- -Add icons or text labels alongside color indicators
- -Use patterns in charts
Audio Control
Level AIf audio plays automatically for more than 3 seconds, provide a mechanism to pause or stop it.
How to Fix
- -Avoid auto-playing audio
- -Provide pause/stop controls if necessary
Contrast (Minimum)
Level AAText has a contrast ratio of at least 4.5:1 (3:1 for large text).
How to Fix
- -Use a contrast checker tool
- -Large text (18pt+) needs 3:1 ratio
Resize Text
Level AAText can be resized without assistive technology up to 200% without loss of content or functionality.
How to Fix
- -Use relative units (rem, em)
- -Test at 200% browser zoom
Images of Text
Level AAIf the same visual presentation can be made using text, images of text are not used.
How to Fix
- -Use CSS for text styling instead of images
- -Logos are an exception
Reflow
Level AAContent can be presented without loss of information or functionality at 320px width without two-dimensional scrolling.
How to Fix
- -Use responsive design
- -Test at 320px viewport width
Non-text Contrast
Level AAVisual information required to identify UI components and graphical objects has at least 3:1 contrast.
How to Fix
- -Form inputs need visible borders
- -Focus indicators need 3:1 contrast
Text Spacing
Level AANo loss of content or functionality when users adjust text spacing properties.
How to Fix
- -Avoid fixed-height containers for text
- -Test with increased line-height and letter-spacing
Content on Hover or Focus
Level AAAdditional content triggered on hover/focus is dismissible, hoverable, and persistent.
How to Fix
- -Tooltips should be dismissible with Escape
- -Content should remain visible until dismissed
9.2 Operable
User interface components and navigation must be operable.
Keyboard
Level AAll functionality is available from a keyboard.
How to Fix
- -Test with Tab, Enter, Space, and arrow keys only
- -Ensure all interactive elements are focusable
No Keyboard Trap
Level AKeyboard focus can be moved away from any component using only the keyboard.
How to Fix
- -Test modals and dialogs for keyboard navigation
- -Focus should never be trapped
Character Key Shortcuts
Level ASingle-character keyboard shortcuts can be turned off or remapped.
How to Fix
- -Avoid single-key shortcuts
- -Provide settings to disable or remap if used
Timing Adjustable
Level AUsers can turn off, adjust, or extend time limits.
How to Fix
- -Warn users before session timeout
- -Allow extension of time limits
Pause, Stop, Hide
Level AMoving, blinking, or scrolling content can be paused, stopped, or hidden.
How to Fix
- -Carousels need pause controls
- -Animations longer than 5 seconds need controls
Three Flashes or Below Threshold
Level AWeb pages do not contain anything that flashes more than three times per second.
How to Fix
- -Avoid flashing content entirely
- -Keep flash rate below 3 Hz
Bypass Blocks
Level AA mechanism is available to bypass blocks of content repeated on multiple pages.
How to Fix
- -Add skip to main content link
- -Use ARIA landmarks
Page Titled
Level AWeb pages have titles that describe topic or purpose.
How to Fix
- -Each page should have a unique, descriptive title
- -Include both page name and site name
Focus Order
Level AIf navigation sequence affects meaning, focusable components receive focus in an order that preserves meaning.
How to Fix
- -Tab order should follow visual reading order
- -Modals should trap focus appropriately
Link Purpose (In Context)
Level AThe purpose of each link can be determined from the link text alone or with programmatically determined context.
How to Fix
- -Avoid "click here" without context
- -Use aria-label if needed
Multiple Ways
Level AAMore than one way is available to locate a web page within a set of web pages.
How to Fix
- -Provide site search
- -Include sitemap
- -Use clear navigation
Headings and Labels
Level AAHeadings and labels describe topic or purpose.
How to Fix
- -Use descriptive, unique headings
- -Form labels should clearly describe expected input
Focus Visible
Level AAAny keyboard-operable user interface has a visible keyboard focus indicator.
How to Fix
- -Never remove outline without replacement
- -Use :focus-visible for keyboard-only styles
Focus Not Obscured (Minimum)
Level AAWhen an element receives keyboard focus, it is not entirely hidden due to author-created content.
How to Fix
- -Sticky headers should not cover focused elements
- -Use scroll-margin for sticky elements
Pointer Gestures
Level AAll functionality using multipoint or path-based gestures can be operated with single-pointer.
How to Fix
- -Pinch-to-zoom should have button alternatives
- -Swipe gestures need button alternatives
Pointer Cancellation
Level AFor functionality operated using a single pointer, at least one of the following is true: no down-event, abort or undo, up reversal, essential.
How to Fix
- -Use click/touch-end instead of mousedown
- -Provide undo for destructive actions
Label in Name
Level AFor UI components with visible text labels, the accessible name contains the visible text.
How to Fix
- -Accessible name should match or include visible label
Motion Actuation
Level AFunctionality triggered by device motion can be operated by user interface components.
How to Fix
- -Shake-to-undo needs a button alternative
- -Motion controls should be optional
Dragging Movements
Level AAAll functionality that uses a dragging movement can be achieved by a single pointer without dragging.
How to Fix
- -Provide up/down buttons for list reordering
- -Drag-to-reorder needs single-click alternative
Target Size (Minimum)
Level AAThe size of the target for pointer inputs is at least 24 by 24 CSS pixels.
How to Fix
- -Buttons and links at least 24x24 pixels
- -44x44 pixels recommended for mobile
9.3 Understandable
Information and the operation of user interface must be understandable.
Language of Page
Level AThe default human language of each web page can be programmatically determined.
How to Fix
- -Add lang attribute to html element
- -Use correct language code (en, nl, de, etc.)
Language of Parts
Level AAThe human language of each passage or phrase can be programmatically determined.
How to Fix
- -Use lang attribute on elements with different language text
On Focus
Level AWhen any component receives focus, it does not initiate a change of context.
How to Fix
- -Do not auto-submit forms on focus
- -Do not open new windows on focus
On Input
Level AChanging the setting of any UI component does not automatically cause a change of context unless the user has been advised.
How to Fix
- -Forms should have explicit submit buttons
- -Warn before auto-submit
Consistent Navigation
Level AANavigation mechanisms repeated on multiple pages occur in the same relative order.
How to Fix
- -Keep navigation in same location across pages
- -Maintain consistent menu order
Consistent Identification
Level AAComponents with same functionality are identified consistently.
How to Fix
- -Use consistent labels for similar functions
- -Search icons should always mean search
Consistent Help
Level AIf help mechanisms are included on multiple pages, they occur in the same relative order.
How to Fix
- -Keep help links in consistent location
- -Contact info should be in same place
Error Identification
Level AIf an input error is automatically detected, the item in error is identified and the error is described.
How to Fix
- -Show clear error messages
- -Identify which field has the error
Labels or Instructions
Level ALabels or instructions are provided when content requires user input.
How to Fix
- -Every form field needs a label
- -Provide format hints for expected input
Error Suggestion
Level AAIf an input error is detected and suggestions are known, they are provided.
How to Fix
- -Suggest corrections when possible
- -Show expected format for invalid input
Error Prevention (Legal, Financial, Data)
Level AAFor pages with legal commitments or financial transactions: reversible, checked, or confirmed.
How to Fix
- -Allow review before submission
- -Provide confirmation step
- -Allow undo
Redundant Entry
Level AInformation previously entered by the user is auto-populated or available for selection.
How to Fix
- -Auto-fill shipping from billing
- -Remember preferences within session
Accessible Authentication (Minimum)
Level AACognitive function tests are not required for any step in authentication unless alternatives are provided.
How to Fix
- -Allow password managers
- -Provide copy-paste for codes
- -Offer CAPTCHA alternatives
9.4 Robust
Content must be robust enough to be interpreted reliably by user agents, including assistive technologies.
Name, Role, Value
Level AFor all UI components, the name and role can be programmatically determined; states, properties, and values can be set programmatically.
How to Fix
- -Custom components need ARIA roles
- -Use aria-pressed for toggles
- -Use aria-expanded for expandables
Status Messages
Level AAStatus messages can be programmatically determined without receiving focus.
How to Fix
- -Use aria-live regions for updates
- -Use role="alert" for errors
- -Announce loading states
Frequently Asked Questions
What is the relationship between EN 301 549 and WCAG?
EN 301 549 is the European standard for ICT accessibility. Chapter 9 (Web) directly incorporates WCAG 2.1 Level AA. The clause numbers map directly: EN 301 549 clause 9.X.Y.Z corresponds to WCAG X.Y.Z. If you comply with WCAG 2.2 AA, you meet the web requirements of EN 301 549.
Does the EAA apply to my business outside the EU?
Yes, if you sell digital products or services to EU consumers. The EAA applies based on where your customers are, not where your business is headquartered. US and UK companies selling to EU customers must comply.
What is the deadline for EAA compliance?
The EAA became enforceable on June 28, 2025. All covered products and services must now be accessible. There is a transition period until June 2030 for existing products placed on the market before June 2025.
What are the penalties for non-compliance?
Penalties vary by EU member state, as each country enforces the EAA through national law. Penalties can include fines, mandatory remediation, and in some cases, removal of products from the market. In the Netherlands, the ACM (Authority for Consumers & Markets) is the enforcement body.
Do I need to provide an accessibility statement?
Yes, the EAA requires an accessibility statement that describes conformance status, known limitations, and contact information. This statement should be updated when you make significant changes. inclly can help generate EU-compliant accessibility statements from your scan data.
Continue Learning
Explore related guides to support your European accessibility compliance.
European Accessibility Act
What US and UK businesses need to know about the EAA in 2026.
EN 301 549 Guide
The European accessibility standard explained with chapter breakdowns.
EAA vs WCAG
How the European Accessibility Act relates to WCAG and what compliance means.
ACM Accessibility Requirements
Dutch EAA enforcement timelines and compliance steps for the Netherlands.
Ready to Check Your EAA Compliance?
inclly scans your website against EN 301 549 requirements and provides specific remediation guidance. See exactly what needs to be fixed to achieve EU compliance.