fix: optimize shell accessibility and assets

This commit is contained in:
Bastian Wagner
2026-08-19 07:42:28 +02:00
parent b9e5c66c8e
commit fce03e220d
10 changed files with 85 additions and 10 deletions

View File

@@ -45,3 +45,30 @@ The Browser plugin is not available in this session. The repository has no insta
- The world route placeholder contains no scene, nodes, API loading, or travel panel; Task 9 owns those surfaces.
- The context panel is only a reusable framed shell until Task 9 supplies world data.
## Review fix round 1
### Accessibility and responsive behavior
- The active Karte button now has the explicit accessible name `Karte`, so its label remains available when the compact viewport hides visible navigation text.
- At widths below 900px, the context panel now reflows into a full-width row below main content instead of being hidden. At widths below 620px it remains in DOM order after main content.
### Runtime HUD derivatives
The five original 1254 x 1254 user assets remain unmodified. The shell now loads deterministic 128 x 128 PNG derivatives from `images/hud/runtime/`; each was resized locally with high-quality bicubic interpolation and no creative image change.
| Asset | Original bytes | Runtime derivative bytes |
| --- | ---: | ---: |
| CharacterIcon | 2,283,892 | 26,670 |
| MapsIcon | 2,144,772 | 27,774 |
| HuntIcon | 2,313,949 | 29,486 |
| QuestsIcon | 2,235,955 | 29,554 |
| InventoryIcon | 2,060,169 | 26,142 |
The combined persistent-icon payload is reduced from 11,038,737 bytes to 139,626 bytes (about 98.7%). The resized Maps icon was visually inspected after generation.
### Regression evidence
RED: the added explicit accessible-name assertion failed before the fix because the active Karte control had no `aria-label`.
GREEN: `npm test --workspace=@ashen-realms/web -- --watch=false` passed with 3 test files and 14 tests. The added coverage verifies the explicit Karte name, non-null WorldStore character rendering, and root/wildcard `/world` route redirects.