Digital Accessibility Remediation Report: Port of Rotterdam
1. Executive Summary
The Port of Rotterdam Authority is committed to ensuring its digital platforms are accessible to all users, in alignment with the European Union Web Accessibility Directive (Directive 2016/2102) and the Dutch Government Digital Accessibility Decree. Based on the independent audit conducted on January 16, 2026, the primary domain (portofrotterdam.com) and associated subdomains currently hold a Status B: Partially Compliant rating against the EN 301 549 / WCAG 2.1 Level AA standards.
While the Port Authority is transparent about its current barriers and has provided alternatives (phone and email support), significant remediation is required across both technical infrastructure and content management. This report outlines the specific barriers identified, delineates responsibilities between internal content teams and external development partners, and provides a structured roadmap to achieve full compliance (Status A) by the stated deadline of December 31, 2027.
2. Regulatory Context
Under the Government Digital Accessibility Decree, public sector bodies must ensure their websites and mobile applications meet digital accessibility standards. The framework is defined as follows:
- Standard: EN 301 549 (equivalent to WCAG 2.1 Level A and AA).
- Current Status: Partially Compliant. The Port maintains a valid accessibility statement, possesses a recent audit, and has a plan, but technical deviations remain.
- Enforcement Target: Attain Status A (Fully Compliant) by the December 31, 2027 deadline documented in the Port's official accessibility statement.
3. Breakdown of the Port of Rotterdam's Accessibility Barriers
The audit statement notes failures across Level A and AA of the WCAG 2.1 standard. Here are detailed examples of what these failures look like in practice, divided by the team responsible:
3.1. Content Team Responsibilities (Currently Addressed Internally)
These are failures based on how information is uploaded or written on the site.
- SC 1.1.1 Non-textual content [Level A]: Images are missing alt text. For example, a photo of a new terminal might have a filename like
terminal-project-03.jpg reading out to a blind user, or a decorative image might be lacking an empty alt="" tag causing screen readers to read useless clutter.
- SC 1.2.2 Subtitles (pre-recorded) [Level A]: Videos uploaded to the site (e.g., promotional videos or event recordings) do not have accurate closed captions.
- SC 1.2.3 Audio description or alternative media [Level A] & SC 1.2.5 [Level AA]: Videos lack a secondary audio track describing important visual information (e.g., on-screen text or action that isn't spoken aloud) for blind users.
- SC 1.4.5 Images of text [Level AA]: The team is uploading graphics that contain text (like an infographic or a promotional banner) instead of using real HTML text over an image.
- SC 2.4.2 Page title [Level A]: Webpage titles (the text in the browser tab) are not unique or descriptive, making it hard for users with multiple tabs open to know where they are.
- SC 2.4.4 Link target (in context) [Level A]: Using ambiguous link text like "Click Here" or "Read More" instead of descriptive text like "Read the 2026 Annual Report."
- SC 2.4.6 Headings and labels [Level AA]: Content headers (
<h1>, <h2>) are being used out of order, or forms are missing clear instructions.
- SC 3.1.1 Language of the page [Level A] & SC 3.1.2 [Level AA]: The
<html> language attribute isn't set, or if an English page suddenly quotes a Dutch phrase, the Dutch text isn't marked up with a language tag so screen readers pronounce it correctly.
3.2. Technical / Development Team Responsibilities (Addressed by External Partner)
These are failures in the code, structure, and CSS of the website.
- SC 1.3.1 Information and relationships [Level A]: Visual relationships (like a form field and its label, or a group of checkboxes) are not programmatically linked in the HTML.
- SC 1.3.2 Meaningful sequence [Level A]: The visual reading order of the site does not match the code order, meaning a screen reader reads content out of order.
- SC 1.3.5 Identify the purpose of the input [Level AA]: Form fields (like Name or Email) are missing autocomplete attributes, preventing browsers from automatically filling them in for users with cognitive or motor disabilities.
- SC 1.4.1 Use of colour [Level A] & SC 1.4.3 / 1.4.11 Contrast [Level AA]: Text or essential UI components (like buttons or icons) do not have high enough color contrast against their backgrounds. Links might only be identified by a color change rather than an underline.
- SC 1.4.10 Reflow [Level AA] & SC 1.4.12 Text spacing [Level AA]: When users zoom into the site at 400%, the layout breaks, overlaps, or forces horizontal scrolling. When custom text spacing is applied, text is cut off.
- SC 1.4.13 Content on hover or focus [Level AA]: Dropdown menus or tooltips that appear when hovered over cannot be dismissed with the Escape key or disappear when a user tries to move their mouse to them.
- SC 2.1.1 Keyboard [Level A] & SC 2.1.4 Keyboard shortcuts [Level A]: Menus, buttons, or custom widgets cannot be operated using only the Tab, Enter, and Spacebar keys.
- SC 2.2.2 Pause, stop, hide [Level A]: Carousels, animated backgrounds, or scrolling tickers start automatically and do not have a visible "Pause" button.
- SC 2.4.1 Navigating around blocks [Level A]: The site is missing a "Skip to Main Content" link, forcing keyboard users to tab through the entire navigation menu on every single page.
- SC 2.4.3 Focus order [Level A] & SC 2.4.7 Focus visible [Level AA]: The keyboard focus jumps around the page illogically, or there is no visible outline showing the user which button/link they are currently focused on.
- SC 4.1.2 Name, role, value [Level A]: Custom UI elements (like expanding accordions or custom dropdowns) do not use ARIA attributes to tell screen readers what the element is or if it is expanded/collapsed.
4. Remediation Roadmap Plan
Phase 1: Triage and High-Impact Technical Fixes (Months 1–4)
Focus: Resolving critical Level A barriers that physically prevent users from navigating the site or completing primary tasks.
Task 1.1: Keyboard Accessibility & Navigation (Dev Team)
- Implement a "Skip to Main Content" link (SC 2.4.1).
- Fix Focus Visible issues by implementing a CSS focus ring (
outline: 2px solid #000;) on all interactive elements (SC 2.4.7).
- Ensure all menus, custom widgets, and modals can be navigated with Tab/Enter and closed with the Escape key (SC 2.1.1, SC 2.4.3).
Task 1.2: Form and Input Fixes (Dev Team)
- Programmatically link all form labels to inputs (SC 1.3.1).
- Add autocomplete attributes to user data fields (SC 1.3.5).
- Ensure all custom form controls report their Name, Role, and Value (SC 4.1.2).
Task 1.3: Content Triage (Content Team)
- Run a crawler to identify all empty or redundant alt text on primary pages (SC 1.1.1).
- Identify all non-descriptive links ("Click here") on primary landing pages and rewrite them (SC 2.4.4).
Phase 2: Design, Media, and Structural Adjustments (Months 5–10)
Focus: Addressing visual barriers, media barriers, and secondary technical issues.
Task 2.1: Visual and Contrast Fixes (Dev/Design Team)
- Adjust CSS hex codes to ensure all text meets 4.5:1 contrast and UI elements meet 3.1:1 contrast (SC 1.4.3, 1.4.11).
- Add underlines or icons to links that currently rely only on color (SC 1.4.1).
Task 2.2: Reflow and Spacing (Dev Team)
- Test and fix CSS layouts to ensure the site can be zoomed to 400% without horizontal scrolling or overlapping (SC 1.4.10, 1.4.12).
Task 2.3: Media Remediation (Content Team)
- Audit all pre-recorded videos on the site.
- Send priority videos out for professional closed captioning (.srt or .vtt files) (SC 1.2.2).
- Draft text transcripts or source audio descriptions for videos conveying visual-only information (SC 1.2.3, 1.2.5).
Task 2.4: Animation Control (Dev Team)
- Add pause/play toggles to all auto-advancing carousels and animated elements (SC 2.2.2).
Phase 3: Content Cleanup and Policy Implementation (Months 11–16)
Focus: Fixing the remaining Level AA content issues and changing internal processes so bugs aren't reintroduced.
Task 3.1: Structural Content Fixes (Content Team)
- Review all page titles to ensure they are unique and descriptive (SC 2.4.2).
- Ensure all heading structures (H1, H2, H3) are logical and not skipping levels (SC 2.4.6).
- Replace any images of text with actual HTML text and CSS styling (SC 1.4.5).
Task 3.2: Language Attributes (Dev/Content Team)
- Ensure base language tags are set and implement a system for content authors to tag foreign phrases (SC 3.1.1, 3.1.2).
Task 3.3: Internal Process Updates
- Integrate an automated accessibility checker (like axe DevTools) into the Dev Team's deployment pipeline.
- Provide mandatory WCAG training for all content uploaders to prevent future bad alt text and bad link text.
Phase 4: Validation and Re-Audit (Months 17–20 / Late 2027)
Focus: Proving compliance before the December 2027 deadline.
Task 4.1: Internal QA
- Conduct manual screen reader testing (JAWS/NVDA) and keyboard-only testing on all key user journeys.
Task 4.2: Third-Party Re-Audit
- Bring the independent third-party auditor back to re-test the site against the WCAG 2.1 AA standard.
Task 4.3: Update Accessibility Statement
- Upon a clean audit, update the site's Accessibility Statement from "Partially Compliant" (Status B) to "Fully Compliant" (Status A) by December 31, 2027.
5. Conclusion & Next Steps
Achieving full compliance by the end of 2027 requires immediate, synchronized action between the Port of Rotterdam's content managers and external technical partners. By prioritizing high-impact operability blockers first (such as keyboard navigation and critical forms), the Port can significantly reduce the risk of user exclusion early in the remediation process. It is recommended that this roadmap be integrated into ongoing agile development sprints, with quarterly check-ins to measure progress against the WCAG standard.