This demo is one table built with the online Table Wizard, with every Web Accessibility option in the wizard switched on. Try it without a mouse: press Tab to reach the table, then use the arrow keys to move from cell to cell. Sort a column, type in the search box, or move to another page and a screen reader will announce what changed. On a phone, select a reference code to open the details that do not fit the screen.

Municipal service fees for 2026. Use the search box to narrow the list, select a column header to sort by it, and use the arrow keys to move from cell to cell. Columns that do not fit a small screen are shown in a details table under each row.

Table 1. Municipal service fees for 2026: reference, service, department, billing frequency, fee in euros and current status. 24 services, 10 rows per page.
RefServiceDeptFreqFee (EUR)UpdStatus
REF-101Household waste collectionEnvironmentQuarterly48.002026-01-12Active
REF-102Bulky waste removalEnvironmentPer request25.002026-01-12Active
REF-103Green waste bin - second binEnvironmentAnnual36.502025-11-30Active
REF-104Resident parking permit - first vehicleTransportAnnual65.002026-02-02Active
REF-105Resident parking permit - second vehicleTransportAnnual130.002026-02-02Active
REF-106Visitor parking book - 20 daysTransportPer request18.002026-02-02Active
REF-107Dropped kerb applicationTransportPer request215.002025-09-18Under review
REF-108Building permit - minor worksPlanningPer request180.002026-03-04Active
REF-109Building permit - extensionPlanningPer request420.002026-03-04Active
REF-110Planning search - standardPlanningPer request95.002025-12-15Active
REF-111Planning search - urgentPlanningPer request160.002025-12-15Active
REF-112Food business registrationPublic HealthPer request0.002026-01-20Free
REF-113Food hygiene re-inspectionPublic HealthPer request210.002026-01-20Active
REF-114Pest control - domestic visitPublic HealthPer request72.002025-10-08Active
REF-115Street trading licenceLicensingAnnual340.002026-02-17Active
REF-116Market stall - day rateLicensingDaily22.002026-02-17Active
REF-117Pavement cafe licenceLicensingAnnual290.002025-08-29Suspended
REF-118Library membershipCultureAnnual0.002025-07-01Free
REF-119Library room hire - per hourCultureHourly14.502026-01-05Active
REF-120Sports hall hire - per hourCultureHourly38.002026-01-05Active
REF-121Swimming pool - adult entryCulturePer visit5.202026-01-05Active
REF-122Allotment plot - standardEnvironmentAnnual58.002025-11-30Waiting list
REF-123Cemetery plot - residentBereavementPer request780.002025-06-24Active
REF-124Memorial bench - 10 year leaseBereavementPer request1250.002025-06-24Active

How this table is configured

Every setting below comes from the Web Accessibility section of the online Table Wizard, plus the interactive options the same wizard offers. Nothing here was written by hand, and no accessibility markup was added to the article: the ruleset carries it, so every table built from that ruleset behaves the same way.

  • Accessibility Status: enabled. Turning it on applies the high-contrast theme as a starting point, which gives the header and cell text a strong contrast ratio against their backgrounds (WCAG 1.4.3 Contrast).
  • Table Caption. The sentence above the table is a real <caption> element, so screen reader users hear what the table holds before they enter it, and everyone else can read it (WCAG 2.4.6 Headings and Labels, 1.3.1 Info and Relationships).
  • ARIA Label: "Municipal service fees 2026". Once the table becomes interactive it is exposed as a grid, and this gives the grid a short accessible name (WCAG 4.1.2 Name, Role, Value).
  • ARIA Described By. The table is linked to the paragraph above, so the instructions are part of the table description in the page markup. Once the table becomes interactive, it also points at its own status line, the one that reads "Showing 1 to 10 of total 24 entries" (WCAG 1.3.1).
  • Column ARIA Titles. The visible headers are kept short so the table fits: Ref, Dept, Freq, Upd. Each one is given a full spoken name, so a screen reader announces "Responsible department" instead of "Dept", and "Fee in euros, including VAT" instead of "Fee (EUR)" (WCAG 1.3.1, 2.4.6).
  • Keyboard Navigation, with the KeyTable extension. The table takes keyboard focus and the arrow keys move a visible focus ring from cell to cell, so the whole table can be read without a mouse. A labelled, visually hidden control announces that keyboard navigation is available (WCAG 2.1.1 Keyboard, 2.4.7 Focus Visible).
  • Focus Management, target: table caption. Sorting, searching or changing page rebuilds the rows. Focus is moved back to the caption instead of being dropped at the top of the document, so keyboard and screen reader users keep their place (WCAG 2.4.3 Focus Order).
  • Screen Reader Announcements: polite, atomic. A live region reports each change without interrupting what is being read. Sorting announces "Sorted by Service, ascending. Showing 1 to 10 of 24 entries. Page 1 of 3." and searching announces "Search for "Planning". Showing 1 to 4 of 4 entries (filtered from 24 total)". Announcements are on for search, sorting, page changes, page length changes and loading (WCAG 4.1.3 Status Messages).
  • Responsive Accessibility, detail renderer: Table. On narrow screens the department, frequency and update date leave the grid and appear in a details table under the row, where each value keeps its own header. A list would read as loose text; a table keeps the header-to-value relationship that screen readers rely on (WCAG 1.3.1).
  • Header rows: 1. The first row is marked as the header row, so its cells are real <th> header cells rather than ordinary cells, and every value is tied to its column (WCAG 1.3.1).
  • Sorting, search and pagination. The interactive controls are keyboard operable and each sortable header reports its current state as ascending or descending, so the sort order is not conveyed by the arrow icon alone (WCAG 1.4.1 Use of Color, 4.1.2).

Why it matters

A table that fails an accessibility check usually fails for structural reasons: no caption, headers that are not header cells, controls that cannot be reached by keyboard, and updates that happen silently. Each of those is a checkbox or a text field in the Table Wizard, and each one applies to every table built from the ruleset. For a public authority, a school, a health service or any organisation with an accessibility statement, that is the difference between fixing tables one at a time and fixing them once.

The same options are available for your own tables in the online Table Wizard, and are described on the Web Accessibility feature page.

Â