Accessibility
We aim to meet WCAG 2.2 Level AA. This page records what has actually been checked, and — more usefully — what hasn’t.
Demonstration project. Juniper & Bean Café is a portfolio piece. The conformance claim below reflects genuine automated measurement of this site, but a real statement should follow manual assistive-technology testing too.
What has been done
Colour and contrast
Every text and background pair on every page has been measured against the rendered page, not estimated from the palette. All body text meets or exceeds 4.5:1 and all large text 3:1. The headline over the photographic hero was measured against the brightest pixels of the actual photograph composited with its overlay, rather than assumed.
Colour is never the only way information is conveyed: the current page in the navigation carries an underline as well as a colour change, star ratings are also stated in text, and dietary tags use an icon and a word.
Keyboard
- Every interactive element is reachable and operable by keyboard.
- A “Skip to main content” link is the first stop on every page.
- Focus is always visible — a 3px copper outline, offset so it is never clipped. It is never removed.
- The hero drink shelf enlarges on focus exactly as it does on hover, so the effect is not mouse-only.
- Menu categories are a proper tablist: arrow keys move between them, Home and End jump to either end.
- The cookie settings dialog traps focus while open, closes on Escape, and returns focus to the control that opened it.
Structure and screen readers
- Headings run in order with no skipped levels, and there is exactly one
h1per page. - Landmarks are used properly, and each navigation region is labelled.
- Images carry descriptive alternative text; purely decorative graphics are hidden from assistive technology.
- Icon-only controls have accessible names, and toggle states are exposed rather than implied visually.
Motion
Everything that animates respects prefers-reduced-motion. With it enabled, transitions are reduced to nothing, the map pin stops pulsing, the map’s zoom animation is disabled, and “back to top” jumps instead of smooth-scrolling. There is no autoplaying or looping content that can’t be stopped.
Targets and layout
- Interactive targets meet the 24×24px WCAG 2.2 minimum; most are 44px or larger.
- Layouts are checked at 375px, 768px, 1024px, 1280px and 1440px with no horizontal scrolling.
- Zoom is never disabled, and text reflows rather than truncating.
Known limitations
Stated plainly, because a statement that claims perfection is useless:
- No assistive-technology testing yet. Conformance has been verified by measurement and code review, not by sessions with VoiceOver, NVDA or JAWS. That is the most valuable next step.
- The map is third-party. Leaflet supports keyboard panning and zooming, but the underlying map imagery cannot be made fully accessible. Everything the map conveys — the address, directions, opening hours — is available as text next to it, and the map does not load at all unless you allow it.
- Reduced transparency is not specially handled. The interface uses translucent, blurred surfaces. Contrast was measured against the composited result so text remains legible, but we do not currently swap in solid backgrounds when the operating system asks for reduced transparency.
- No formal audit. This has not been assessed by an independent accessibility auditor.
Tell us if something doesn’t work
If you hit a barrier here, we want to know — please email hello@juniperandbean.com or call (704) 555-0142, describing what you were trying to do and what got in the way. We aim to reply within five working days.
If you need anything on this site in another format — large print, plain text, or read aloud over the phone — just ask.
Questions about any of this? Write to hello@juniperandbean.com.
Last updated 27 August 2026.