Accessibility

Accessibility
Statement

Inclusion is my profession, so this site should hold itself to the standard I ask of others. This statement sets out honestly where it stands, what works, what doesn't yet, and how to tell me if something gets in your way.

My commitment

hughokeeffe.com is built to be usable by as many people as possible, regardless of how they browse, including those using screen readers, keyboard-only navigation, screen magnification, or browser settings that reduce motion or increase text size. Accessibility is treated as a baseline requirement of the design, not an afterthought.

Conformance status

This site aims to conform to the Web Content Accessibility Guidelines (WCAG) 2.2 at Level AA. To the best of my knowledge it currently meets that target, based on a self-review rather than a formal third-party audit. Where any element falls short, I treat it as a defect to be fixed, not a limitation to be documented and left alone.

Measures taken

These are the specific steps built into the site.

  • A "skip to main content" link on every page so keyboard and screen-reader users can bypass the navigation.
  • Semantic HTML structure with clear landmarks (header, navigation, main, footer) and a single, logical heading order on every page.
  • The same navigation, in the same order, on every page, with the current page marked in a way that does not rely on colour.
  • Clearly visible keyboard focus indicators on every interactive element, and a header that only stays on screen when there is room for it, so it never covers the thing you have just moved to.
  • Text and interface colours that meet WCAG AA contrast ratios against their backgrounds. Links in text are underlined, never marked by colour alone.
  • Motion on this site is decorative and brief. It never moves text while you are reading it, nothing loops or flashes, and there is no auto-playing media. It switches off automatically if your device is set to reduce motion, and the Reduce motion switch at the bottom of every page turns it off for this browser whatever your settings.
  • All content is readable with JavaScript switched off.
  • Descriptive text alternatives for meaningful images, with purely decorative elements hidden from assistive technology.
  • Descriptive link names, including a spoken cue where a link opens in a new tab.
  • A responsive layout that reflows cleanly down to a 320px viewport and supports full-page browser zoom to 400% without loss of content.
  • The page language is declared so screen readers use the correct pronunciation.
  • Form fields have visible, permanently associated labels, with required fields named in words rather than signalled by an asterisk alone.
  • The booking calendar is click to load. No third-party code, and no third-party cookies, are loaded until you choose to open it.
  • No advertising, no tracking cookies and no accessibility overlay. This site sets no cookies of its own at all.

How this site was built and tested

I take the view that an accessibility statement should describe a method, not just assert a result. So here is the method, including its limits.

The site is hand-written templates built into static pages, with a utility CSS build. There is no page builder, no template marketplace theme and no accessibility overlay widget. Overlays tend to paper over the underlying markup rather than fix it, and they frequently make things worse for screen reader users. Everything here is fixed at source.

It has been reviewed against WCAG 2.2 AA at the code level, working through the success criteria rather than relying on an automated scanner. Automated tools catch a useful minority of issues and miss most of the ones that matter, so they are treated as a first pass, not a verdict. Alongside that review, the site has been checked in these ways.

  • Automated scans on every page with two tools, axe-core covering WCAG 2.0, 2.1 and 2.2 at A and AA plus best practice at desktop and phone widths, and WebAIM's WAVE, with every result they could not decide checked by hand.
  • Every text and interface colour pair has been checked by calculating its contrast ratio numerically, rather than judging it by eye.
  • Every page has been checked at nine screen sizes, from a large laptop down to the equivalent of 400% zoom, for sideways scrolling and for anything fixed to the screen covering content.
  • The site has been walked through by keyboard alone at every one of those sizes, checking that focus order follows reading order, that focus is always visible and never hidden behind the header, and that nothing traps focus, including inside the booking calendar.
  • Every page has been checked with JavaScript switched off, with increased text and line spacing, and with text enlarged to 200% on its own.
  • Motion has been checked with reduce-motion settings on and off, with the Reduce motion switch on and off, and in a browser that does not support the newer animation features.
  • Heading structure, landmarks, page titles, link names, image alternatives and the size of every control have been checked on every page.
  • The contact form has been checked in its error state, including the error summary and how each message is announced.
  • Structured data and the RSS feed have been validated, and every internal link checked.

Test results are recorded each time the site changes significantly, most recently on 14 October 2026.

Third-party services

A few things on or around this site are run by other companies. Each one has an alternative route.

Luma

Luma runs registration for The Small Print. I don't control its pages. If it gets in your way, email me and I'll register you myself.

Google Meet

Google Meet hosts the sessions, with live captions on. Everyone who registers gets the recording, slides and transcript afterwards, and slides are available before any session on request.

Substack

Substack sends The Asterisk and news of the next Small Print session by email. Every piece of writing is published here in full first, and every session is listed here.

Calendly

Calendly handles booking, loads only when you ask for it, and email is always an alternative.

Plausible

Plausible counts visits. It adds nothing you can see or interact with.

Known limitations

A few things are honestly worth flagging, because a statement that claims perfection is not worth reading.

  • This is a self-assessment, not an independent audit. No third party has verified these claims. Self-review by someone who knows the criteria is considerably better than nothing, and it is not the same thing as an external audit.
  • The contact form shows a summary of any problems at the top of the form and next to each field. With JavaScript off, it falls back to your browser's own messages, which are less clearly worded.
  • The booking calendar is provided by Calendly, and I do not control what is inside it. It is deliberately click-to-load, so it never loads unless you ask for it, and I have given the frame a descriptive name. Everything inside that frame is Calendly's markup. If you have difficulty booking, email me and I will arrange a time directly, and that route will always exist alongside it.

Feedback

If you encounter any barrier on this site, or need information here in a different format, I want to know, and I'll treat it as a priority. Email me at hugh@hughokeeffe.com with a brief description of the problem and the page or feature involved, and I'll respond and aim to put it right.

Technical information

This site relies on HTML, CSS, and a small amount of JavaScript. JavaScript adds five things here. It folds the menu behind a Menu button on phones, it loads the booking calendar when you ask for it, it gives the contact form clearer error messages, it remembers your Reduce motion choice, and it counts visits through Plausible, which you can switch off on the privacy page. Everything else works without it, and all content is visible with it switched off. Without it, the full menu simply shows on phones.

Two third-party scripts can run on this site. Calendly's booking calendar loads only after you press the button that opens it. Plausible's analytics script loads on every page, sets no cookies and collects no personal data. There is no tag manager, no advertising, no embedded video, and no accessibility overlay. Fonts are served from this domain rather than a font network.

This statement was last reviewed on 14 October 2026. It is based on a self-assessment of the site against WCAG 2.2 AA, carried out by me. It has not been independently audited.