From b16b149792af2a4ccdf4b8757d764b77ce415264 Mon Sep 17 00:00:00 2001 From: Rachel Harris Date: Tue, 28 Jul 2026 11:44:10 -0700 Subject: [PATCH 1/9] fix a11y issues --- .../connectionStrings/components/commandBar.tsx | 2 ++ .../components/connectionStringsView.tsx | 11 ++++++++++- src/app/constants/fluentV9Theme.ts | 15 ++++++++++++++- src/app/css/_header.scss | 3 +++ src/app/css/_notification.scss | 3 +++ src/app/css/_themes.scss | 6 +++--- .../deviceList/components/deviceQueryClause.tsx | 4 ++-- .../components/notificationListEntry.tsx | 4 ++-- src/app/shared/components/commandBarV9.tsx | 2 ++ src/app/shared/components/copyButton.tsx | 4 +++- src/localization/locales/en.json | 7 +++++-- src/localization/resourceKeys.ts | 5 ++++- 12 files changed, 53 insertions(+), 13 deletions(-) diff --git a/src/app/connectionStrings/components/commandBar.tsx b/src/app/connectionStrings/components/commandBar.tsx index a9f3c562..d47d5b09 100644 --- a/src/app/connectionStrings/components/commandBar.tsx +++ b/src/app/connectionStrings/components/commandBar.tsx @@ -9,6 +9,7 @@ import { useAuthenticationStateContext } from '../../authentication/context/auth interface ConnectionStringCommandBarProps { onAddConnectionStringClick: () => void; + addButtonRef?: React.Ref; } export const ConnectionStringCommandBar: React.FC = props => { @@ -25,6 +26,7 @@ export const ConnectionStringCommandBar: React.FC= CONNECTION_STRING_LIST_MAX_LENGTH, icon: , key: 'add', diff --git a/src/app/connectionStrings/components/connectionStringsView.tsx b/src/app/connectionStrings/components/connectionStringsView.tsx index 3c3fb751..a000399d 100644 --- a/src/app/connectionStrings/components/connectionStringsView.tsx +++ b/src/app/connectionStrings/components/connectionStringsView.tsx @@ -29,6 +29,7 @@ export const ConnectionStringsView: React.FC = () => { useBreadcrumbEntry({name: t(ResourceKeys.breadcrumb.resources)}); const [ state, api ] = useConnectionStringContext(); const [ connectionStringUnderEdit, setConnectionStringUnderEdit ] = React.useState(undefined); + const addButtonRef = React.useRef(null); const connectionStringsWithExpiry = state.payload; const synchronizationStatus = state.synchronizationStatus; @@ -64,12 +65,20 @@ export const ConnectionStringsView: React.FC = () => { }; const onConnectionStringEditCommit = (connectionString: string) => { + const wasAdding = connectionStringUnderEdit === ''; onUpsertConnectionString(connectionString, connectionStringUnderEdit); setConnectionStringUnderEdit(undefined); + if (wasAdding) { + addButtonRef.current?.focus(); + } }; const onConnectionStringEditDismiss = () => { + const wasAdding = connectionStringUnderEdit === ''; setConnectionStringUnderEdit(undefined); + if (wasAdding) { + addButtonRef.current?.focus(); + } }; React.useEffect(() => { @@ -95,7 +104,7 @@ export const ConnectionStringsView: React.FC = () => { return (
- +
{connectionStringsWithExpiry.map(connectionStringWithExpiry => {renderEdgeDropdownOptions()} @@ -135,7 +135,7 @@ export const DeviceQueryClause: React.FC {renderStatusDropdownOptions()} diff --git a/src/app/notifications/components/notificationListEntry.tsx b/src/app/notifications/components/notificationListEntry.tsx index d130eb3a..92dec90a 100644 --- a/src/app/notifications/components/notificationListEntry.tsx +++ b/src/app/notifications/components/notificationListEntry.tsx @@ -44,8 +44,8 @@ export const NotificationListEntry: React.FC = (prop