e.stopPropagation()}>
-
- ) : !revealSecret ? (
-
- ) : (
-
- )
- }
- onClick={() => setRevealSecret(!revealSecret)}
- />
+
+
+
+ ) : !revealSecret ? (
+
+ ) : (
+
+ )
+ }
+ onClick={() => setRevealSecret(!revealSecret)}
+ aria-label={revealSecret ? 'Hide secret value' : 'Show secret value'}
+ // Tooltip repeats the label; screen readers would read it twice
+ aria-describedby={undefined}
+ />
+
+
+ {revealSecret ? 'Hide secret value' : 'Show secret value'}
+
+
{revealSecret && revealedValue !== undefined ? (
diff --git a/apps/studio/components/interfaces/Integrations/Vault/Secrets/SecretsManagement.tsx b/apps/studio/components/interfaces/Integrations/Vault/Secrets/SecretsManagement.tsx
index 1520f7990f8..5933b54f035 100644
--- a/apps/studio/components/interfaces/Integrations/Vault/Secrets/SecretsManagement.tsx
+++ b/apps/studio/components/interfaces/Integrations/Vault/Secrets/SecretsManagement.tsx
@@ -14,6 +14,9 @@ import {
SelectItem,
SelectTrigger,
SelectValue,
+ Tooltip,
+ TooltipContent,
+ TooltipTrigger,
} from 'ui'
import { Input } from 'ui-patterns/DataInputs/Input'
@@ -114,14 +117,22 @@ export const SecretsManagement = () => {
onKeyDown={onSearchInputEscape(searchValue ?? '', setSearchValue)}
actions={[
searchValue && (
- }
- onClick={() => setSearchValue('')}
- className="p-0 h-5 w-5"
- />
+
+
+ }
+ onClick={() => setSearchValue('')}
+ className="p-0 h-5 w-5"
+ aria-label="Clear search"
+ // Tooltip repeats the label; screen readers would read it twice
+ aria-describedby={undefined}
+ />
+
+ Clear search
+
),
]}
/>
diff --git a/apps/studio/components/interfaces/Integrations/Wrappers/CreateWrapperSheet.tsx b/apps/studio/components/interfaces/Integrations/Wrappers/CreateWrapperSheet.tsx
index c9be7ff7b02..e655d64d9b6 100644
--- a/apps/studio/components/interfaces/Integrations/Wrappers/CreateWrapperSheet.tsx
+++ b/apps/studio/components/interfaces/Integrations/Wrappers/CreateWrapperSheet.tsx
@@ -16,6 +16,9 @@ import {
SheetFooter,
SheetHeader,
SheetTitle,
+ Tooltip,
+ TooltipContent,
+ TooltipTrigger,
WarningIcon,
} from 'ui'
import { Admonition } from 'ui-patterns/Admonition'
@@ -426,20 +429,36 @@ export const CreateWrapperSheet = ({
- }
- onClick={() => {
- setSelectedTableToEdit(table)
- }}
- />
- }
- onClick={() => {
- removeTable(tableIndex)
- }}
- />
+
+
+ }
+ onClick={() => {
+ setSelectedTableToEdit(table)
+ }}
+ aria-label={`Edit ${table.table_name} foreign table`}
+ // Tooltip repeats the label; screen readers would read it twice
+ aria-describedby={undefined}
+ />
+
+ {`Edit ${table.table_name} foreign table`}
+
+
+
+ }
+ onClick={() => {
+ removeTable(tableIndex)
+ }}
+ aria-label={`Remove ${table.table_name} foreign table`}
+ // Tooltip repeats the label; screen readers would read it twice
+ aria-describedby={undefined}
+ />
+
+ {`Remove ${table.table_name} foreign table`}
+
)
diff --git a/apps/studio/components/interfaces/Integrations/Wrappers/EditWrapperSheet.tsx b/apps/studio/components/interfaces/Integrations/Wrappers/EditWrapperSheet.tsx
index 6eb50175642..ca2a703b9fd 100644
--- a/apps/studio/components/interfaces/Integrations/Wrappers/EditWrapperSheet.tsx
+++ b/apps/studio/components/interfaces/Integrations/Wrappers/EditWrapperSheet.tsx
@@ -15,6 +15,9 @@ import {
SheetFooter,
SheetHeader,
SheetTitle,
+ Tooltip,
+ TooltipContent,
+ TooltipTrigger,
} from 'ui'
import ConfirmationModal from 'ui-patterns/Dialogs/ConfirmationModal'
import { FormItemLayout } from 'ui-patterns/form/FormItemLayout/FormItemLayout'
@@ -280,20 +283,36 @@ export const EditWrapperSheet = ({