From e5922f8dd649132f7bb12d090c650a70da7ecfb1 Mon Sep 17 00:00:00 2001 From: Ruben van der Linde Date: Sat, 8 Aug 2026 13:09:19 +0200 Subject: [PATCH 1/2] fix(a11y): four widget icons rendered the wrong glyph, three controls were keyboard-dead MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Full-tree measurement of origin/development with the hydra-gates runner from ConductionNL/.github@main. Four gates, eleven findings, all real — plus two gates whose findings are false positives and are reported rather than "fixed". GATE-55 — FOUR WIDGET ICONS THAT DO NOT EXIST (detail-page-discipline). ModuleDetail.md-files BookOpenVariantOutline -> BookOpenVariant ModuleDetail.md-versions ViewModule -> SourceBranch SuiteDetail.suite-data PackageVariant -> Package BioMaatregelDetail.bm-data ShieldLockOutline -> ShieldCheckOutline CnWidgetGrid's resolveWidgetIcon() falls back to DEFAULT_ICON — 'ViewDashboard' — for any name not in its registry, so these four widgets rendered a generic dashboard glyph. Silently: no console warning, no build error, and `check:manifest` passes because the schema types `icon` as a string. Verified against the REAL registry, not the gate's copy of it. hydra-gates gate-55 carries a hardcoded mirror and says so in its own comments; a mirror is only as fresh as its last manual edit and fails in both directions. Read from node_modules/@conduction/nextcloud-vue/src/components/CnWidgetGrid/widgetIcons.js at the pinned 2.2.0-vue3.3: all four flagged names are absent, and `git log -S` over that file shows none of them was ever present. The replacements are the nearest true members of the same glyph family. GATE-32 — THREE CONTROLS NO KEYBOARD CAN REACH (semantic-controls). EmailConfiguration the template-variable tags: a clickable that inserts a variable into the editor. Now a real