From 96be20c75d0e5ed0acdf7f729528ccbb4b9c96ca Mon Sep 17 00:00:00 2001 From: sdarbinyan Date: Sun, 26 Jul 2026 22:07:14 +0400 Subject: [PATCH] fix(admin): Seller Management UX review - a11y label fix, icon list, review doc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed the Phase 1 UI against every other Backoffice page. Found and fixed 2 real issues; everything else verified already consistent (built entirely from shared components, so hover/focus/dialog-a11y/ dark-readiness/contrast come from those components, not reinvented). Fixed: - Message textarea had no id/aria-describedby wiring (app-input self-wires this via injected FormFieldContext; the raw textarea - no dedicated textarea component exists yet - never got it, so the visible label's `for` pointed nowhere). Added explicit aria-label bound to the same translation key as the visible label. - Learn More dialog's feature list would render native browser bullets (no global list-style reset exists outside details>summary in styles.scss). Replaced with checkCircle icon + text rows, consistent with how the rest of the app pairs icons with list/status meaning. Added docs/architecture/foundation/Seller-Management-UX-Review.md documenting both fixes plus everything checked and confirmed already consistent (empty-state usage, icon reuse, translations completeness across en/ru/hy, responsive at 1280px/375px, dialog a11y verified via accessibility tree not assumed). tsc --noEmit clean, arch:check (boundaries + cycles) clean. Live- verified: Learn More dialog shows all 6 items each with an icon (confirmed via DOM query), textarea aria-label confirmed "Сообщение", no console errors. --- docs/architecture/foundation/README.md | 1 + .../foundation/Seller-Management-UX-Review.md | 80 +++++++++++++++++++ ...dmin-seller-management-page.component.html | 13 +-- ...dmin-seller-management-page.component.scss | 16 +++- .../admin-seller-management-page.component.ts | 9 +++ 5 files changed, 111 insertions(+), 8 deletions(-) create mode 100644 docs/architecture/foundation/Seller-Management-UX-Review.md diff --git a/docs/architecture/foundation/README.md b/docs/architecture/foundation/README.md index f1bbdd0..1a7ca9a 100644 --- a/docs/architecture/foundation/README.md +++ b/docs/architecture/foundation/README.md @@ -52,6 +52,7 @@ It is a platform runtime that must support unlimited tenants from one Angular ap - [ADR-011](adr/ADR-011-optional-seller-management-module.md) — decision record - [Seller-Management-Diagrams.md](Seller-Management-Diagrams.md) — hierarchy, bootstrap gate, type diagram - [Seller-Management-Domain-Models.md](Seller-Management-Domain-Models.md) — typed models, optional sellerId fields +- [Seller-Management-UX-Review.md](Seller-Management-UX-Review.md) — UX/accessibility review of the Phase 1 UI ### Engineering Rule Documents diff --git a/docs/architecture/foundation/Seller-Management-UX-Review.md b/docs/architecture/foundation/Seller-Management-UX-Review.md new file mode 100644 index 0000000..c4cd747 --- /dev/null +++ b/docs/architecture/foundation/Seller-Management-UX-Review.md @@ -0,0 +1,80 @@ +# Seller Management — UX Review + +Review pass over the Phase 1 UI (`admin-seller-management-page.component.*`) +against the rest of the Backoffice. Two real issues found and fixed; the +rest of the checklist was verified as already consistent because the page +is built entirely from existing shared components. + +## Fixed this pass + +1. **Missing label association on the Message field (real a11y bug).** + `app-input` self-wires `id`/`aria-describedby` from its injected + `FormFieldContext` (confirmed in `input.component.html`); the raw + `