{metric_label(metric.metric)}
-{metric.date} · {metric.dimension}
+{metric.date} · {metric.dimension}
diff --git a/e2e/tests/accessibility-resilience.spec.ts b/e2e/tests/accessibility-resilience.spec.ts index 7d68b6a..c2ff9a2 100644 --- a/e2e/tests/accessibility-resilience.spec.ts +++ b/e2e/tests/accessibility-resilience.spec.ts @@ -1,6 +1,11 @@ import AxeBuilder from "@axe-core/playwright"; import { expect, test } from "@playwright/test"; -import { newIsolatedContext, projectEmail, registerAndConfirm } from "./helpers"; +import { + loginWithMagicLink, + newIsolatedContext, + projectEmail, + registerAndConfirm, +} from "./helpers"; const publicAccessibilityPaths = [ "/", @@ -154,3 +159,34 @@ test("authenticated core workflows remain accessible on a phone viewport", async await user.context.close(); }); + +test("staff workspaces remain accessible without horizontal overflow on a phone viewport", async ({ + browser, + request, +}) => { + const admin = await loginWithMagicLink(browser, request, "e2e-admin@example.invalid"); + await admin.page.setViewportSize({ width: 390, height: 844 }); + + for (const path of [ + "/admin", + "/admin/users", + "/support/operations", + "/moderation", + "/analytics", + "/admin/audit", + ]) { + await admin.page.goto(path); + await expectAccessible(admin.page); + + const dimensions = await admin.page.evaluate(() => ({ + clientWidth: document.documentElement.clientWidth, + scrollWidth: document.documentElement.scrollWidth, + })); + + expect(dimensions.scrollWidth, `${path} overflowed at 390px`).toBeLessThanOrEqual( + dimensions.clientWidth, + ); + } + + await admin.context.close(); +}); diff --git a/lib/who_need_help_web/live/admin_audit_live.ex b/lib/who_need_help_web/live/admin_audit_live.ex index bbf159e..9f26c70 100644 --- a/lib/who_need_help_web/live/admin_audit_live.ex +++ b/lib/who_need_help_web/live/admin_audit_live.ex @@ -188,7 +188,7 @@ defmodule WhoNeedHelpWeb.AdminAuditLive do
+
{gettext( "Actor, action, and target remain visible; technical metadata opens on demand." )} @@ -209,14 +209,14 @@ defmodule WhoNeedHelpWeb.AdminAuditLive do
{actor_label(event)}
-+
{event.actor_id}
{event.action}
{event.target_type}
-{event.target_id}
+{event.target_id}
{@user.email}
-{@user.id}
+{@user.id}
{account_name(user)}
-+
{user.email}
@@ -293,7 +293,7 @@ defmodule WhoNeedHelpWeb.AdminUsersLive do{account_name(user)}
-{user.email}
+{user.email}
{proposal.reason}
-+
{gettext("by %{name}", name: proposal.proposer.display_name)}
{report.details}
-+
{report.reporter.display_name || report.reporter.email}
{signal.subject.display_name || signal.subject.email}
+
{signal.subject.display_name || signal.subject.email}
{signal.subject.email}
{proposal.proposed_name}
+
{proposal.proposed_name}
{proposal.reason}
{gettext("Page %{page}", page: @page_number)}
-+
{gettext("Showing %{first}–%{last}", first: elem(@range, 0), last: elem(@range, 1))}
{gettext("No notifications yet")}
{gettext("Request, message, and nearby-alert updates will appear here.")} @@ -306,7 +306,7 @@ defmodule WhoNeedHelpWeb.NotificationLive do value={notification.inserted_at} date_style="short" time_style="short" - class="mt-2 block text-xs font-normal text-base-content/45" + class="mt-2 block text-xs font-normal text-base-content/70" /> <.icon name="hero-chevron-right" class="mt-2 size-4 shrink-0 opacity-45" /> @@ -401,7 +401,7 @@ defmodule WhoNeedHelpWeb.NotificationLive do value={device.last_seen_at} date_style="short" time_style="short" - class="text-xs text-base-content/55" + class="text-xs text-base-content/70" />
+
{gettext("One row per date, metric, and non-identifying dimension.")}
{metric_label(metric.metric)}
-{metric.date} · {metric.dimension}
+{metric.date} · {metric.dimension}
{@label}
+{@label}
{compact_number(@value)}
{message.body}
{gettext("No conversation messages yet.")}
@@ -327,7 +327,7 @@ defmodule WhoNeedHelpWeb.SupportOperationLive do placeholder={gettext("Write the decision, next step, or information you need…")} /> -+
{if @record.contact_verified_at, do: gettext("The verified contact will receive a new reply by email."), else: gettext("Email is disabled until contact is verified.")} @@ -431,7 +431,7 @@ defmodule WhoNeedHelpWeb.SupportOperationLive do />
+
{if @record.contact_verified_at, do: gettext("The verified contact will receive this update by email."), else: gettext("Email is disabled until contact is verified.")} diff --git a/lib/who_need_help_web/live/support_operations_live.ex b/lib/who_need_help_web/live/support_operations_live.ex index 182885f..8997710 100644 --- a/lib/who_need_help_web/live/support_operations_live.ex +++ b/lib/who_need_help_web/live/support_operations_live.ex @@ -564,7 +564,7 @@ defmodule WhoNeedHelpWeb.SupportOperationsLive do > {request.subject}
{request.contact_email} @@ -609,7 +609,7 @@ defmodule WhoNeedHelpWeb.SupportOperationsLive do )}
{notice.contact_email || gettext("No contact email")} @@ -690,7 +690,7 @@ defmodule WhoNeedHelpWeb.SupportOperationsLive do )}