NormflussDocument accessibility platform

Document type

Making bank statements accessible

Bank and financial statements are dense data tables — the hardest PDFs to make accessible. The specific failure modes, and the checklist to fix transaction tables, balances and headers.

Statements are the hardest common document to make accessible because they combine two problems at once: dense, multi-page data tables, and industrial-scale generation. A composition engine emits hundreds of thousands of statements from one template, so an accessibility defect is never a single file — it is the entire billing cycle. Because consumer banking is explicitly in scope of the European Accessibility Act, this is also one of the highest-exposure document types across the EU.

Where bank statements typically fail accessibility

  • Transaction tables span multiple pages, and the column headers are repeated only visually, so a screen reader loses which column a figure belongs to after the first page break.
  • Running balances and debits/credits are distinguished by colour or column position alone — meaning that vanishes for a non-visual reader.
  • Statements are generated by high-volume composition engines that emit positioned text with no tag tree at all, so every statement in a monthly run is inaccessible by default.
  • Account numbers and sort codes are split across visual groups the reader cannot reassemble, and sensitive summaries (overdraft, fees) sit in untagged callout boxes.
  • There is no document title or language, so a reader opening dozens of statements cannot tell them apart or navigate them.

Remediation checklist

  • Tag the transaction table with header cells and mark header rows to repeat, so column meaning survives every page break.
  • Encode debit/credit and balance semantics in the table structure, not in colour, so 'balance' is announced as such.
  • Wire accessibility into the statement-composition pipeline so every statement in a run is tagged at generation — not remediated one by one.
  • Set title, language, and headings (account summary, transactions, fees) on each statement.
  • Give the logical reading order priority over the print layout, ending on balances and any action required.
  • Validate against PDF/UA per statement and keep the evidence, since volume is exactly where silent regressions hide.

Related