Produced by xlsx_a11y_check.py (our rule-based checker, modelled on Microsoft Accessibility Checker rules for Excel) v1.0. This is our own rule-based script that reads the workbook's SpreadsheetML directly. Its rules are modelled on the rules Microsoft publishes for the Excel Accessibility Checker, with a few additions marked "our addition"; it is not Microsoft's tool, severities are ours, and counts will not match Excel's own checker exactly. File: accessible-excel-before.xlsx
Errors: 4Warnings: 23Tips: 6
| ID | Rule | Severity | Count |
|---|---|---|---|
| X01 | Workbook title property is empty Modelled on: Our addition (not an Excel checker rule): document title, WCAG 2.4.2 / EN 301 549 10.2.4.2; becomes the PDF title on export | error | 1 |
| X02 | Workbook language property (dc:language) not set Modelled on: Our addition: WCAG 3.1.1 / EN 301 549 10.3.1.1; Excel stores no language per cell | warning | 1 |
| X03 | Picture, chart, shape or group without alternative text (and not marked decorative) Modelled on: Missing alternative text | error | 2 |
| X04 | Alternative text is a generic label or file name ("Picture", "Chart 1", "logo.png") Modelled on: Missing alternative text (meaningful alt text; manual review) | warning | 0 |
| X05 | Excel Table without a header row (headerRowCount="0") Modelled on: Missing table header | error | 1 |
| X06 | Excel Table header names are generic ("Column1", "Sütun1") Modelled on: Missing table header (header must describe the column) | warning | 0 |
| X07 | Merged cells Modelled on: Merged cells | warning | 4 |
| X08 | Default sheet name ("Sheet1", "Sayfa1", "Tabelle1" ...) Modelled on: Default sheet names | warning | 2 |
| X09 | Hyperlink text is non-descriptive ("buraya tıklayın", "click here") or a raw URL Modelled on: Unclear hyperlink text | warning | 1 |
| X10 | Blank row or column inside an Excel Table Modelled on: Blank table rows or columns | warning | 0 |
| X11 | Blank row or column used as a spacer inside the used range of a sheet Modelled on: Our addition, related to "Blank table rows or columns": screen-reader users may assume the data ended | tip | 4 |
| X12 | Cell text contrast below WCAG 2.2 AA (4.5:1, or 3:1 for 18 pt / 14 pt bold) Modelled on: Hard-to-read text contrast | warning | 14 |
| X13 | Hidden sheet Modelled on: Hidden sheets | warning | 1 |
| X14 | Data range (3+ rows x 2+ columns) not defined as an Excel Table Modelled on: Our addition: without a Table there is no programmatic header row | tip | 1 |
| X15 | Possible colour-only meaning: fill/font colour varies among numeric cells of one column, or conditional formatting on numbers Modelled on: Our addition (heuristic, manual review): WCAG 1.4.1 Use of Color | tip | 1 |
Title: (empty) · Language: (not set) · Author: Ali Karabüyük · Cells checked for contrast: 96 (undetermined: 0)
| Sheet | State | Used range | Excel Tables | Merged | Freeze | Print titles | Objects / alt text |
|---|---|---|---|---|---|---|---|
| Sheet1 | visible | A1:K19 | - | 4 | - | - | chart at A21: NO alt text; pic at M1: NO alt text |
| Sayfa2 | hidden | A1:C4 | Table1 A1:C4 (NO header row) | 0 | - | - | - |
{"value": ""}{"value": ""}{"sheet": "Sheet1", "object": "Chart 1", "type": "chart", "anchor": "A21", "alt": "", "decorative": false}{"sheet": "Sheet1", "object": "Image 2", "type": "pic", "anchor": "M1", "alt": "", "decorative": false}{"sheet": "Sayfa2", "table": "Table1", "ref": "A1:C4", "header_row": false, "totals_row": false, "columns": ["Column1", "Column2", "Column3"]}{"sheet": "Sheet1", "range": "A2:K2"}{"sheet": "Sheet1", "range": "A1:K1"}{"sheet": "Sheet1", "range": "A4:D4"}{"sheet": "Sheet1", "range": "F4:K4"}{"sheet": "Sheet1"}{"sheet": "Sayfa2"}{"sheet": "Sheet1", "cell": "D17", "text": "buraya tıklayın", "target": "https://www.example.com/ornek-as/butce-yonergesi-2026"}{"sheet": "Sheet1", "row": 3}{"sheet": "Sheet1", "row": 10}{"sheet": "Sheet1", "row": 16}{"sheet": "Sheet1", "column": "E"}{"sheet": "Sheet1", "fg": "BFBFBF", "bg": "FFFFFF", "ratio": 1.84, "required": 4.5, "source": "cell style", "cells": ["A2", "A19"], "cell_count": 2, "example_text": "Tüm tutarlar TL / All amounts in TRY — kırmızı hücreler önem"}{"sheet": "Sheet1", "fg": "FFFFFF", "bg": "FFFF00", "ratio": 1.07, "required": 4.5, "source": "cell style", "cells": ["A4", "F4"], "cell_count": 2, "example_text": "BÜTÇE / BUDGET"}{"sheet": "Sheet1", "fg": "FFFFFF", "bg": "FFC000", "ratio": 1.64, "required": 4.5, "source": "cell style", "cells": ["A5", "B5", "C5", "D5", "F5", "G5", "H5", "I5", "J5", "K5"], "cell_count": 10, "example_text": "Departman"}{"sheet": "Sayfa2", "state": "hidden"}{"sheet": "Sheet1", "rows_with_2plus_values": 12, "used_range": "A1:K19"}{"sheet": "Sheet1", "column": "C", "reason": "numeric cells in one column use 2 different font/fill colour pairs", "groups": {"000000 on FFFFFF": ["C6", "C8", "C9", "C11", "C14", "C15"], "000000 on FF0000": ["C7", "C12", "C13"]}}