From 7d9741ef778b9241b5f7ec2f841737ab74327d11 Mon Sep 17 00:00:00 2001 From: "paseo-bot[bot]" <266920839+paseo-bot[bot]@users.noreply.github.com> Date: Sat, 31 Oct 2026 22:50:27 +0000 Subject: [PATCH] fix(app): expose the SSL checkbox checked state on web (#8399) The web renderer does not map accessibilityState.checked onto aria-checked. Supply the checked property explicitly so accessibility clients agree with the checkmark and connection URI. Co-authored-by: paseo-bot[bot] <266920839+paseo-bot[bot]@users.noreply.github.com> --- .../app/e2e/browser/settings-navigation.spec.ts | 13 +++++++++++++ packages/app/e2e/support/helpers/settings.ts | 15 +++++++++++++++ packages/app/src/components/add-host-modal.tsx | 1 + 3 files changed, 29 insertions(+) diff --git a/packages/app/e2e/browser/settings-navigation.spec.ts b/packages/app/e2e/browser/settings-navigation.spec.ts index 3ec921a663..aa381f1348 100644 --- a/packages/app/e2e/browser/settings-navigation.spec.ts +++ b/packages/app/e2e/browser/settings-navigation.spec.ts @@ -38,6 +38,9 @@ import { fillDirectHostUri, expectDirectHostFormValues, expectDirectHostSslEnabled, + expectDirectHostSslDisabled, + fillDirectHostAddress, + toggleDirectHostSsl, expectDirectHostUriValue, expectDirectHostUriHidden, expectDiagnosticsContent, @@ -284,6 +287,16 @@ test.describe("Settings sidebar navigation", () => { await expectAddHostMethodOptions(page); await selectHostConnectionType(page, "direct"); + await fillDirectHostAddress(page, "example.paseo.test", "7443"); + await expectDirectHostSslDisabled(page); + await toggleDirectHostSsl(page); + await expectDirectHostSslEnabled(page); + await toggleHostAdvanced(page); + await expectDirectHostUriValue(page, "tcp://example.paseo.test:7443?ssl=true"); + await toggleHostAdvanced(page); + await toggleDirectHostSsl(page); + await expectDirectHostSslDisabled(page); + await toggleHostAdvanced(page); await fillDirectHostUri(page, "tcp://example.paseo.test:7443?ssl=true&password=shared-secret"); await toggleHostAdvanced(page); diff --git a/packages/app/e2e/support/helpers/settings.ts b/packages/app/e2e/support/helpers/settings.ts index a2befccfbf..796d0b45f5 100644 --- a/packages/app/e2e/support/helpers/settings.ts +++ b/packages/app/e2e/support/helpers/settings.ts @@ -351,9 +351,24 @@ export async function expectDirectHostFormValues( } export async function expectDirectHostSslEnabled(page: Page): Promise { + await expect(page.getByRole("checkbox", { name: "Use SSL", exact: true })).toBeChecked(); await expect(page.getByTestId("direct-ssl-toggle-checked")).toBeVisible(); } +export async function fillDirectHostAddress(page: Page, host: string, port: string): Promise { + await page.getByRole("textbox", { name: "Host", exact: true }).fill(host); + await page.getByRole("textbox", { name: "Port", exact: true }).fill(port); +} + +export async function toggleDirectHostSsl(page: Page): Promise { + await page.getByRole("checkbox", { name: "Use SSL", exact: true }).click(); +} + +export async function expectDirectHostSslDisabled(page: Page): Promise { + await expect(page.getByRole("checkbox", { name: "Use SSL", exact: true })).not.toBeChecked(); + await expect(page.getByTestId("direct-ssl-toggle-checked")).toHaveCount(0); +} + export async function expectDirectHostUriValue(page: Page, uri: string): Promise { await expect(page.getByTestId("direct-host-uri-input")).toHaveValue(uri); } diff --git a/packages/app/src/components/add-host-modal.tsx b/packages/app/src/components/add-host-modal.tsx index aa0c65b638..5d8fc90cff 100644 --- a/packages/app/src/components/add-host-modal.tsx +++ b/packages/app/src/components/add-host-modal.tsx @@ -476,6 +476,7 @@ function AddHostModalContent({ visible, onClose, onCancel, onSaved }: AddHostMod accessibilityRole="checkbox" accessibilityLabel={t("pairing.direct.fields.useSsl")} accessibilityState={useTlsAccessibilityState} + aria-checked={useTls} testID="direct-ssl-toggle" >