-
+ {/* WCAG 2.0 AA: Main content area */} +

Authentication

+ +
- +
-

{title}

+

{title}

{subtitle}

-
+
@@ -95,6 +102,7 @@ export function AuthPage() { className="hover:border-kleff-gold/60 border-white/15 bg-transparent text-xs text-neutral-200 hover:text-white" onClick={handleContinue} disabled={auth.isLoading} + aria-label="Try authentication again" > {t.try_again} diff --git a/frontend/src/pages/dashboard/DashboardPage.tsx b/frontend/src/pages/dashboard/DashboardPage.tsx index 2f5205ba..b177fa90 100644 --- a/frontend/src/pages/dashboard/DashboardPage.tsx +++ b/frontend/src/pages/dashboard/DashboardPage.tsx @@ -114,10 +114,13 @@ export function DashboardPage() { return (
+ {/* WCAG 2.0 AA: Main content with id for skip link target */} +

My Projects Dashboard

+ {/* Header */}
-

My Projects Dashboard

+

My Projects Dashboard

Resource usage and performance across your projects

@@ -146,9 +149,13 @@ export function DashboardPage() {
- {/* Error Display */} + {/* WCAG 2.0 AA: Error Display with live region */} {error && ( -
+
{error}
)} @@ -197,22 +204,28 @@ export function DashboardPage() { {/* Graphs */} - {/* Project Usage Table */} + {/* WCAG 2.0 AA: Project Usage Table with caption */} {projectUsages.length > 0 && (
- -

Resource Usage by Project

+
- +
+ - Project - CPU Cores - Memory (GB) - Disk (KB/s) - Window + Project + CPU Cores + Memory (GB) + Disk (KB/s) + Window diff --git a/frontend/src/pages/dashboard/MetricsDashboard.tsx b/frontend/src/pages/dashboard/MetricsDashboard.tsx index b8ca8506..11b591ec 100644 --- a/frontend/src/pages/dashboard/MetricsDashboard.tsx +++ b/frontend/src/pages/dashboard/MetricsDashboard.tsx @@ -3,6 +3,7 @@ import { MetricCard } from "@features/observability/components/MetricCard"; import { NamespacesTable } from "@features/observability/components/NamespacesTable"; import { NodesList } from "@features/observability/components/NodesList"; import { ResourceChart } from "@features/observability/components/ResourceChart"; +import { ProjectAttributionPanel } from "@features/observability/components/ProjectAttributionPanel"; import type { ClusterOverview, MetricCard as MetricCardType, @@ -242,6 +243,10 @@ export function MetricsDashboard() { +
+ +
+

{t.infrastructure}

diff --git a/frontend/src/pages/landing/LandingPage.tsx b/frontend/src/pages/landing/LandingPage.tsx index e6f49ba4..d6ceaaa8 100644 --- a/frontend/src/pages/landing/LandingPage.tsx +++ b/frontend/src/pages/landing/LandingPage.tsx @@ -50,6 +50,11 @@ export function LandingPage() { return (
+ {/* WCAG 2.0 AA: Main content with id for skip link target */} +
+

Kleff Hosting - Open-Source Cloud Deployments

+
+
diff --git a/frontend/src/pages/projects/ProjectsPage.tsx b/frontend/src/pages/projects/ProjectsPage.tsx index 308df12f..50ab91dd 100644 --- a/frontend/src/pages/projects/ProjectsPage.tsx +++ b/frontend/src/pages/projects/ProjectsPage.tsx @@ -376,13 +376,18 @@ export function ProjectsPage() {
+ {/* WCAG 2.0 AA: Button has accessible name */}
+ {/* WCAG 2.0 AA: Search and filter with proper labels */}
- +
diff --git a/frontend/src/pages/settings/SettingsPage.tsx b/frontend/src/pages/settings/SettingsPage.tsx index ccbf3627..f0d36b59 100644 --- a/frontend/src/pages/settings/SettingsPage.tsx +++ b/frontend/src/pages/settings/SettingsPage.tsx @@ -329,13 +329,16 @@ export function SettingsPage() { return (
{/* Background */} -
+
+ Resource usage metrics for all projects including CPU cores, memory usage, disk I/O, + and measurement window. +