Legal
Accessibility statement
This website is a personal portfolio. I keep it accessible by choice, not because of a legal obligation: as a private site offering no consumer services, it falls neither under the German Accessibility Improvement Act (Barrierefreiheitsstärkungsgesetz, BFSG) nor under the rules for public bodies. The goal remains the same - content should be usable by everyone, regardless of assistive technology or disability.
Compliance status
I follow the Web Content Accessibility Guidelines (WCAG) 2.2 at conformance level AA and the European standard EN 301 549. Meeting WCAG 2.2 AA also satisfies the currently harmonised version of that standard (V3.2.1), which references WCAG 2.1.
This website is partially compliant with these requirements, due to the non-compliances and exemptions listed below. The classification follows the European Commission's model accessibility statement (Implementing Decision (EU) 2018/1523), which distinguishes between fully, partially and not compliant.
Known limitations
The following issues are known and not yet fixed:
- Puzzle grids: The boards of "Sudoku in the browser" and
"Logic Squares" carry the role
grid, but the rows and cells that belong to that role are missing. The ARIA structure is therefore incomplete (WCAG 1.3.1 Info and Relationships), and a screen reader cannot walk the grid cell by cell. Both are fully operable by keyboard. On Logic Squares the selected cell is additionally announced with its row, column and content, on Sudoku it is not. - Single-character shortcuts: Sudoku, Logic Squares and Pausensnake respond to single letter and number keys anywhere on the page, such as W, A, S and D, and on the puzzles also N, H, P, C and the digits. This applies even when the board does not have focus, and the shortcuts cannot be turned off or remapped (WCAG 2.1.4 Character Key Shortcuts). On these pages the arrow keys always control the game and do not scroll the page. In the gamebooks, the number keys also work when no element has focus.
- Pausensnake: The game can be started and restarted, but not paused, and the snake moves at a fixed speed. For people who need more time, that is a barrier. I do not consider it a failure at level AA: WCAG 2.2.2 Pause, Stop, Hide only requires a pause for movement that starts automatically, and the game only starts at the press of a button or key. The speed is part of the game; requiring that timing play no essential role is WCAG 2.2.3 No Timing, at level AAA. A pause function is planned.
- Gamebooks: The player on the pages "The Crypt Under the Thorn",
"The House Behind the Moor", "Brüder dunklen Rufes" and
"The Intercept" puts a
mainelement of its own inside the page's main area, so there are two main landmarks. Messages during combat and after using or equipping an item appear in status regions that are created anew with every step; whether screen readers announce them reliably has not been checked. On "The Intercept", and when a saved game is resumed, the player moves focus into the story text as soon as the page loads, skipping the page's introduction. The source panel carries no language attribute, even when the file in it is written in a different language from the page (WCAG 3.1.2 Language of Parts). The highlight of the current position in the source panel is visual only; screen readers are not told about it. - Accent color on tinted surfaces in dark mode: The "New" label on the app cards of the "Apps" page reaches 4.0:1, with 4.5:1 required (WCAG 1.4.3 Contrast (Minimum)). The same ratio occurs while the mouse pointer is over a row of the material table on the "Maker" page (last column) or over the store link of an app card that has its own product page. Without the pointer it is 4.7:1 there.
- Embedded game on the "Alpine Drift" page: The embed comes from itch.io. I have no influence on its accessibility. A direct link to the original page is provided next to it.
- External references: Blog posts link to third-party studies, PDFs and videos. I cannot vouch for the accessibility of that external content.
What is in place
- Full keyboard operability with a visible focus indicator, including the gallery lightbox (focus trap, Escape to close, focus return) and the gamebooks.
- A skip link to the main content on every page with preceding navigation, semantic landmarks (with the exception noted above for the gamebooks) and a consistent heading structure without skipped levels.
- Alternative text for all informative images - in the photo gallery in the language of the page; decorative elements are hidden from screen readers.
- Fully bilingual: German at the root, English under /en/, with a language switcher in the header and reciprocal hreflang annotations. Every page declares its language, and text in another language carries its own lang attributes (with the exception noted above for the gamebooks' source panel).
- Gamebooks: every choice is a button whose name is the text of the choice; the first nine can also be picked with the number keys while focus is inside the game or on no element at all. After each choice, focus moves to the new passage. The game carries the book's language as its own lang attribute, even where it differs from the language of the page. The source panel can be reached and scrolled by keyboard, and images in the books have alternative text.
- Color contrast above the required values, in light and in dark mode, with the exceptions noted above: text in the main text color reaches at least 10.7:1, muted text at least 4.5:1, with 4.5:1 required.
- Respects the system setting for reduced motion; zooming up to 200% is not blocked.
- No login, no time limits apart from the game speed in Pausensnake, and no auto-playing media. Sudoku and Logic Squares show a running clock, but no time limit.
- Form controls only appear in the gamebooks: the choice of source file, a language selector for bilingual books and, in two books, a starting choice made with radio buttons. All of them are labeled, and nothing is submitted.
- Reach measurement with Cloudflare Web Analytics and GoatCounter works without cookies and without fingerprinting, and no usage profiles are created. The details are in the privacy policy.
Preparation of this statement
This statement is based on a self-assessment carried out on 18 July 2026: a systematic review of the markup, stylesheets and scripts against the level AA success criteria, including a computed contrast check of all color pairs. No independent external audit has taken place. On 26 July 2026 I reviewed and updated the statement after further fixes - among them the resolution of a contrast limitation previously listed here (WCAG 1.4.3 Contrast (Minimum)) - and the bilingual expansion of the site.
On 22 September 2026 I reviewed the statement again against the markup, stylesheets and scripts. Newly covered are the gamebooks added in August and the limitations on keyboard shortcuts and on the accent color in dark mode. Corrected are the statements on forms, reach measurement, contrast and the puzzle grids, the assessment of Pausensnake (previously based on WCAG 2.2.2) and the term for the compliance status (previously "partially conformant"). This review, too, was carried out on the code, not with screen readers or other assistive technology.
Feedback and contact
Noticed a barrier? Unable to use some content? Please get in touch - I appreciate every report and fix issues as best I can.
Contact: tobias@nerdwana.net
Please briefly describe which page is affected and what barrier you ran into.
Feel free to mention the assistive technology you use - that helps with
reproducing the issue. I usually reply within a week.
You can also reach me through the channels listed in the legal notice. How I handle your data is described in the privacy policy.
This page is a translation of the German accessibility statement, provided for ease of understanding. The authoritative version is the German original DE.