Events calendar, registration and ticket page accessibility: a small-business checklist
Make your events page work for everyone: list views for calendar widgets, keyboard-friendly date pickers, an access-needs field on registration forms, labelled ticket quantity pickers, hold timers people can extend, and third-party ticketing tips, with copyable HTML and WCAG 2.2 references.
Holiday markets, classes, open houses, concerts, fundraisers and workshops: if people find your events on your website, the events page is often the busiest page you have between now and New Year. It's also where calendar widgets, ticket forms and countdown timers tend to break for keyboard and screen-reader users. Here is what to check and how to fix it.
1. Give people a list, not only a calendar grid
A month grid looks tidy, but with a screen reader it's 30-plus cells, most of them empty, and on a phone the text often shrinks to unreadable sizes. Keep the grid if you like it, and also offer a plain list view of upcoming events, ideally as the default. Each event should have a real heading, a date written out in text and a link with a clear name.
<h2>Upcoming events</h2>
<ul class="events">
<li>
<h3><a href="/events/holiday-market">Holiday Market</a></h3>
<p><time datetime="2026-12-12T10:00">Saturday, December 12, 10 am to 4 pm</time></p>
<p>Main Street Hall, 120 Main St. Step-free entrance on Oak Ave.</p>
</li>
</ul>Write dates in words ("Saturday, December 12") rather than only "12/12" or a day number inside a box. The time element helps search engines and calendar tools; people still read the text. See WCAG 1.3.1 Info and Relationships and 1.4.10 Reflow.
2. Make the calendar widget work with a keyboard
If you keep a grid or a date picker, press Tab from the top of the page. You should be able to reach the previous and next month buttons, move to each event, and open it with Enter. Check that:
- The month arrows are real buttons with names such as "Next month", not unlabelled icons.
- Focus is visible on every day and event (WCAG 2.4.7).
- Event pop-ups can be opened without hovering, closed with Escape, and return focus to where you were.
- Days with events say so in text, not only with a coloured dot (WCAG 1.4.1).
<button type="button" aria-label="Previous month">‹</button> <h2 id="cal-month" aria-live="polite">December 2026</h2> <button type="button" aria-label="Next month">›</button>
Most calendar plugins and booking platforms control this markup, so check the plugin's settings for a list view or an accessibility mode first, and confirm the options in the vendor's own help pages. Our booking widget guide covers embedded tools you can't edit.
3. Put the key facts in text on the event page
Many event pages are a flyer image with a "Register" button. Everything on the flyer (date, time, place, price, who it's for) needs to be in real text on the page too. Use alt text that summarises the flyer, not a copy of every line. See flyers and images of text.
Also add the access details people need to decide whether they can come: step-free entrance, accessible parking and restrooms, seating, whether there's captioning or an ASL interpreter, and whether the event is loud or has flashing lights. If you don't know, say who to ask. That information is useful to attendees, and a scanner can't write it for you.
4. Ask about access needs on the registration form
A short optional field lets people request what they need before the day, instead of being turned away at the door. Label it clearly and say what you can offer and how far ahead to ask.
<label for="access">Access needs (optional)</label> <p id="access-hint">For example ASL interpreter, captioning, wheelchair seating or a quiet space. Please tell us 7 days ahead so we can arrange it.</p> <textarea id="access" name="access" aria-describedby="access-hint"></textarea>
Only promise what you can actually arrange, and reply to every request. The US Department of Justice's guidance on web accessibility and the ADA is a plain-language starting point for businesses open to the public; it's not specific to events, and this guide isn't legal advice.
5. Ticket quantity, seat and price pickers
- Each quantity box needs a label that names the ticket type ("Adult tickets, $25"), not just a bare number field. Plus and minus buttons need names such as "Add one adult ticket".
- Update the total in a status region so it's announced:
<p role="status">Total: $50</p>. - Seat maps are hard to use without a mouse. Offer a "best available" option or let people pick a section from a list.
- Sold-out and few-left labels need text, not only grey or red colouring.
- Tap targets at least 24 by 24 CSS pixels (WCAG 2.5.8). See mobile tap targets.
6. Countdown timers and checkout time limits
"Your tickets are held for 10 minutes" is a common pattern. WCAG asks that people can turn off, adjust or extend a time limit in most cases, and be warned before it runs out (WCAG 2.2.1 Timing Adjustable). Give at least a 20-second warning with a button to extend, and don't let a ticking timer announce itself every second to screen readers. Our countdown timer guide has copyable code.
7. Third-party ticketing (Eventbrite, Ticket Tailor and similar)
If registration happens on another platform, you can't fix its code, but you can still:
- Link to it with clear text ("Buy tickets on Eventbrite, opens a new site") rather than "Click here".
- Put the date, place, price and access details on your own page so people don't depend on the embed.
- Offer another way to register, such as a phone number or email, for anyone who gets stuck.
- Check the vendor's own accessibility statement and settings; they change often.
For embedded forms, see Google Forms, Jotform and Typeform accessibility.
8. Confirmation emails and calendar files
Write the confirmation email as real text, not an image of a ticket, with the date, address and access details. If you attach a ticket PDF, make sure the key details are in the email body too. "Add to calendar" links should be named for what they do ("Add Holiday Market to Google Calendar"). See accessible emails.
A 10-minute check for your events page
- Run the free snapshot on your events page (paste its full URL).
- Unplug your mouse, or just stop using it, and try to find an event and reach its registration button with Tab and Enter.
- Zoom your browser to 200%: can you still read the dates and press the buttons?
- Read your newest event page with images turned off: are date, place, price and access details still there?
- Start a ticket order and wait for the hold timer. Is there a warning and a way to extend?
What a scan can and can't check here
An automated scan finds only part of the barriers on the pages it visits. On events pages it can flag unlabelled quantity fields and buttons, missing alt text on flyers, low-contrast dates, and links with no name. It can't tell whether your calendar works from start to finish with a keyboard, whether the flyer's alt text matches the flyer, whether a hold timer can be extended, or what happens inside a third-party ticketing page. Our Fix-Pack scans up to 10 pages of your site, so you can include your events list, a typical event page and your registration page.
Run a venue? See museum, theater and venue websites and wedding and event venues. Fundraising? See donation pages.
This is general technical guidance, not legal advice, and it doesn't certify compliance with the ADA or any law, or protect against claims.
Want the fixes written for you?
Start with a free homepage snapshot. The $149 Fix-Pack scans up to 10 pages and gives copy-paste fixes for your platform within 48 hours, with a 14-day refund promise. See a sample report first.
This is general technical guidance, not legal advice, and it does not certify compliance with the ADA or any law.
Related guides
- Section 508 for small businesses and government contractors: what applies to your website
- WAVE accessibility errors explained: what each one means and how to fix it
- Square Online website accessibility fixes: alt text, menus, contrast and ordering
- Age gate pop-up accessibility: "Are you 21?" checks that work with a keyboard and screen reader
This guide is general technical information, not legal advice. Following it does not certify ADA or any legal compliance. Automated checks find only part of accessibility barriers.
Check your own site, then decide
- Free homepage snapshot. Your top 3 issues in about a minute. No signup, no card.
- $149 Fix-Pack, if you want the full list. Up to 10 pages scanned, issues ranked by impact, copy-paste fixes for your platform, delivered within 48 hours, plus one re-scan after you apply them.
Get my free snapshot Order the Fix-Pack – $149
14-day refund promise. See a sample report first. A technical report, not legal advice; automated checks find only part of accessibility barriers.