riprap / flood and heat briefings Active deployment:NYC

Accessibility

Accessibility statement

Riprap's web app is built to meet the Web Content Accessibility Guidelines (WCAG) 2.2 at Level AA, the standard the City of New York adopted in December 2025. It has not been audited by an outside party, and this page does not claim conformance.

Last reviewed .

How it was tested

  • Automated checks with axe-core (through @axe-core/playwright, rule tags wcag2a, wcag2aa, wcag21a, wcag21aa and wcag22aa) in the project's browser tests. They cover the landing page, a flood and a heat briefing, a briefing while it loads, a refusal, a failed source, the print view, the gallery, and the map's list of points. The same tests drive one full journey with the keyboard alone, one at phone width and one with reduced motion.
  • A colour contrast gate in the repository (docs/design/handoff/gates/contrast-gate.mjs) checks each text and graphic colour role against each surface it is drawn on: 4.5 to 1 for text and 3 to 1 for graphics. It passed all 25 checks on 5 October 2026.
  • A review of the source code against each WCAG 2.2 Level A and AA success criterion on 5 October 2026. What it found and changed is listed in docs/ACCESSIBILITY.md.

No person who uses a screen reader, a switch, voice control or screen magnification has tested Riprap, and no manual screen reader pass is on record. Automated checks find only some barriers. The browser tests run on a developer's machine and are not yet part of the project's continuous integration.

What should work

  • Every page has a title, one main heading, landmarks and a link that skips to the main content.
  • Everything can be reached and used with a keyboard, with a visible focus ring that the fixed header does not cover.
  • While a briefing loads, its progress is announced, and so is the answer when it arrives.
  • The question box has a visible label, and an empty question is explained in text.
  • Pages reflow to one column on a phone, and text can be enlarged or respaced without losing content. This was tested in a browser at 390 CSS pixels wide; at 320 it was reviewed in the code, not measured.
  • With reduced motion set, the moving preview on the landing page is a still picture and the map moves without animation. The preview also has its own pause button.
  • Links and buttons that stand alone are at least 24 by 24 CSS pixels.

Known limitations

  • The map. The map is a drawing and a screen reader cannot read what is on it. The briefing text is its equivalent: every point and area on the map comes from a sentence in the briefing, the caption under the map says what is plotted, and "Map points as a list" gives each point as a button. A "Skip the map" link comes before it. The map can be moved with its arrow buttons and zoomed with its plus and minus buttons, without dragging. The background map tiles carry no street labels.
  • Colour on the map. The surface temperature layer of a heat briefing is a colour ramp from blue to red. The caption and the scale under it give the same information in words and numbers, and the figures are in the briefing text.
  • Print view and PDF. Riprap makes no PDF of its own. The print view is a web page laid out for paper, and a PDF saved from it is tagged by your browser, which Riprap does not control or test. The print view has no site header, footer or skip link, and it opens the browser's print dialog when it loads.
  • English only. The app and its briefings are in English. Some sentences use technical terms from the sources, such as a vertical datum or a rainfall rate; a briefing lists the ones it uses under "Terms on this page".
  • Truncated text. On a narrow screen the header shortens a long question and the status of a running briefing. The full text is in the page heading and is announced in full.
  • Code samples. The block of commands on the landing page scrolls sideways on a phone. It can be focused and scrolled with the keyboard.
  • Other sites. Riprap links to agency pages and maps that it does not control.

Report a barrier

If something on Riprap is hard or impossible to use, please open an issue on the project's tracker and say what page you were on, what you were trying to do and what assistive technology or browser you use. A barrier is treated as a defect: it is fixed in the code and recorded in the changelog. The tracker needs a free GitHub account.