diff --git a/client/src/components/Chat/Menus/Endpoints/MenuItem.tsx b/client/src/components/Chat/Menus/Endpoints/MenuItem.tsx index 60c210e015..0fe08b5c79 100644 --- a/client/src/components/Chat/Menus/Endpoints/MenuItem.tsx +++ b/client/src/components/Chat/Menus/Endpoints/MenuItem.tsx @@ -87,10 +87,19 @@ const MenuItem: FC = ({ <>
onSelectEndpoint(endpoint)} + onKeyDown={(e) => { + if (e.key === 'Enter') { + e.preventDefault(); + onSelectEndpoint(endpoint); + } + }} >
@@ -120,6 +129,7 @@ const MenuItem: FC = ({ expiryTime ? 'w-full rounded-lg p-2 hover:text-gray-400 dark:hover:text-gray-400' : '', + 'focus:outline-none focus:ring-2 focus:ring-gray-400 focus:ring-offset-2 dark:focus:ring-gray-400 dark:focus:ring-offset-gray-900', )} onClick={(e) => { e.preventDefault(); diff --git a/client/src/components/ui/Dialog.tsx b/client/src/components/ui/Dialog.tsx index ef2cae96f3..9720ada5c6 100644 --- a/client/src/components/ui/Dialog.tsx +++ b/client/src/components/ui/Dialog.tsx @@ -9,12 +9,10 @@ const Dialog = DialogPrimitive.Root; const DialogTrigger = DialogPrimitive.Trigger; -const DialogPortal = ({ - className = '', - children, - ...props -}: DialogPrimitive.DialogPortalProps) => ( - +type DialogPortalProps = DialogPrimitive.DialogPortalProps & { className?: string }; + +const DialogPortal = ({ className = '', children, ...props }: DialogPortalProps) => ( +
{children}
@@ -122,6 +120,8 @@ const DialogClose = React.forwardRef< className={cn( 'mt-2 inline-flex h-10 items-center justify-center rounded-lg border border-gray-200 bg-transparent px-4 py-2 text-sm font-semibold text-gray-900 transition-colors hover:bg-gray-100 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 dark:border-gray-700 dark:text-gray-100 dark:hover:bg-gray-800 sm:mt-0', className ?? '', + /* Important: for accessibility */ + 'focus:ring-2 focus:ring-gray-400 focus:ring-offset-2 dark:focus:ring-gray-400 dark:focus:ring-offset-gray-900', )} {...props} /> @@ -138,6 +138,8 @@ const DialogButton = React.forwardRef< className={cn( 'mt-2 inline-flex h-10 items-center justify-center rounded-lg border border-gray-200 bg-transparent px-4 py-2 text-sm font-semibold text-gray-900 transition-colors hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-gray-400 focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 dark:border-gray-700 dark:text-gray-100 dark:hover:bg-gray-800 dark:focus:ring-gray-400 dark:focus:ring-offset-gray-900 sm:mt-0', className ?? '', + /* Important: for accessibility */ + 'focus:ring-2 focus:ring-gray-400 focus:ring-offset-2 dark:focus:ring-gray-400 dark:focus:ring-offset-gray-900', )} {...props} /> diff --git a/client/src/utils/index.ts b/client/src/utils/index.ts index ffb7e4fb32..f565401a7c 100644 --- a/client/src/utils/index.ts +++ b/client/src/utils/index.ts @@ -47,8 +47,7 @@ export const languages = [ 'pascal', ]; -export const removeFocusOutlines = - 'focus:outline-none focus:ring-0 focus:ring-opacity-0 focus:ring-offset-0'; +export const removeFocusOutlines = ''; export const cardStyle = 'transition-colors rounded-md min-w-[75px] border font-normal bg-white hover:bg-gray-50 dark:border-gray-700 dark:hover:bg-gray-700 dark:bg-gray-800 text-black dark:text-gray-600 focus:outline-none data-[state=open]:bg-gray-50 dark:data-[state=open]:bg-gray-700';