From 769c6329d8f67b097779463560f03e4ea2abd548 Mon Sep 17 00:00:00 2001 From: Rex Lorenzo Date: Wed, 1 Apr 2026 08:35:54 -0700 Subject: [PATCH 01/11] VPR-104 fix(a11y): Effort area accessibility improvements (PR 4 of 6) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix heading hierarchy: h2 → h1 on all 24 Effort pages - Add route focus management via useRouteFocus composable (C4) - Add aria-label to 272 dense q-toggle switches in UnitList and EffortTypeList tables (S5) — labels include row context - Existing C2 color-indicator and S7 table caption fixes in PercentAssignmentTable, CourseEffortTable, EffortRecordsTable --- VueApp/eslint.config.mjs | 10 ++++ .../Effort/components/CourseEffortTable.vue | 28 +++++++++++ .../Effort/components/EffortRecordsTable.vue | 14 ++++++ .../components/PercentAssignmentTable.vue | 47 ++++++++++++++++++- VueApp/src/Effort/pages/AuditList.vue | 2 +- VueApp/src/Effort/pages/ClinicalEffort.vue | 2 +- VueApp/src/Effort/pages/CourseList.vue | 2 +- VueApp/src/Effort/pages/DeptSummary.vue | 2 +- VueApp/src/Effort/pages/EffortHome.vue | 2 +- VueApp/src/Effort/pages/EffortTypeList.vue | 8 +++- VueApp/src/Effort/pages/EvalDetail.vue | 2 +- VueApp/src/Effort/pages/EvalSummary.vue | 2 +- VueApp/src/Effort/pages/InstructorList.vue | 2 +- VueApp/src/Effort/pages/MeritAverage.vue | 2 +- VueApp/src/Effort/pages/MeritDetail.vue | 2 +- VueApp/src/Effort/pages/MeritSummary.vue | 2 +- VueApp/src/Effort/pages/MultiYearReport.vue | 2 +- VueApp/src/Effort/pages/MyEffort.vue | 4 +- .../pages/PercentAssignTypeInstructors.vue | 2 +- .../Effort/pages/PercentAssignTypeList.vue | 2 +- VueApp/src/Effort/pages/ScheduledCliWeeks.vue | 2 +- VueApp/src/Effort/pages/SchoolSummary.vue | 2 +- VueApp/src/Effort/pages/StaffDashboard.vue | 2 +- .../Effort/pages/TeachingActivityGrouped.vue | 2 +- .../pages/TeachingActivityIndividual.vue | 2 +- VueApp/src/Effort/pages/TermManagement.vue | 2 +- VueApp/src/Effort/pages/TermSelection.vue | 2 +- VueApp/src/Effort/pages/UnitList.vue | 3 +- VueApp/src/Effort/router/index.ts | 3 ++ VueApp/vite.config.ts | 4 +- 30 files changed, 136 insertions(+), 27 deletions(-) diff --git a/VueApp/eslint.config.mjs b/VueApp/eslint.config.mjs index b2ad3ddf..8d3ba8d6 100644 --- a/VueApp/eslint.config.mjs +++ b/VueApp/eslint.config.mjs @@ -50,6 +50,16 @@ export default [ }, }, rules: { + // Quasar components are auto-imported by the vite plugin — flag explicit imports for cleanup + "no-restricted-imports": ["warn", { + patterns: [{ + group: ["quasar"], + importNamePattern: "^Q[A-Z]", + allowTypeImports: true, + message: "Quasar components are auto-imported — remove explicit imports (QBtn, QTable, etc.). Utilities like setCssVar, useQuasar, Notify are fine.", + }], + }], + // Disable the base rule and enable TypeScript-aware version "no-unused-vars": "off", "@typescript-eslint/no-unused-vars": ["error", { diff --git a/VueApp/src/Effort/components/CourseEffortTable.vue b/VueApp/src/Effort/components/CourseEffortTable.vue index 8f6e2c2c..427a68ef 100644 --- a/VueApp/src/Effort/components/CourseEffortTable.vue +++ b/VueApp/src/Effort/components/CourseEffortTable.vue @@ -84,7 +84,21 @@
{{ record.effortTypeDescription }} ({{ record.effortTypeId }}) • +
diff --git a/VueApp/src/Effort/components/EffortRecordsTable.vue b/VueApp/src/Effort/components/EffortRecordsTable.vue index 950f12da..6d9382ee 100644 --- a/VueApp/src/Effort/components/EffortRecordsTable.vue +++ b/VueApp/src/Effort/components/EffortRecordsTable.vue @@ -79,8 +79,22 @@ diff --git a/VueApp/src/Effort/components/PercentAssignmentTable.vue b/VueApp/src/Effort/components/PercentAssignmentTable.vue index 466ead95..cd0211bc 100644 --- a/VueApp/src/Effort/components/PercentAssignmentTable.vue +++ b/VueApp/src/Effort/components/PercentAssignmentTable.vue @@ -57,7 +57,16 @@ >
- {{ formatTypeWithModifier(pct.typeName, pct.modifier) }} + + {{ formatTypeWithModifier(pct.typeName, pct.modifier) }} + +
+ + +
-

Audit Trail

+

Audit Trail

-

Merit & Promotion Report - Clinical Effort

+

Merit & Promotion Report - Clinical Effort

diff --git a/VueApp/src/Effort/pages/CourseList.vue b/VueApp/src/Effort/pages/CourseList.vue index 1abdd727..10203229 100644 --- a/VueApp/src/Effort/pages/CourseList.vue +++ b/VueApp/src/Effort/pages/CourseList.vue @@ -1,6 +1,6 @@