More a11y fixes (#26344)
* fixed a11y violations Signed-off-by: Agnieszka Gancarczyk <agancarc@redhat.com> * fixed more a11y violations Signed-off-by: Agnieszka Gancarczyk <agancarc@redhat.com> * a11y fixes Signed-off-by: Agnieszka Gancarczyk <agancarc@redhat.com> * fixed a11y violations Signed-off-by: Agnieszka Gancarczyk <agancarc@redhat.com> * fixed more a11y violations Signed-off-by: Agnieszka Gancarczyk <agancarc@redhat.com> --------- Signed-off-by: Agnieszka Gancarczyk <agancarc@redhat.com> Co-authored-by: Agnieszka Gancarczyk <agancarc@redhat.com>
This commit is contained in:
parent
ffa069a33b
commit
4a49759aa0
22 changed files with 130 additions and 22 deletions
|
@ -243,12 +243,15 @@ describe("Realm settings tabs tests", () => {
|
||||||
|
|
||||||
addBundle();
|
addBundle();
|
||||||
|
|
||||||
cy.findByTestId("editUserLabelBtn-0").click();
|
cy.findByTestId("editTranslationBtn-0").click();
|
||||||
cy.findByTestId("editUserLabelCancelBtn-0").click();
|
cy.findByTestId("editTranslationCancelBtn-0").click();
|
||||||
|
|
||||||
cy.findByTestId("editUserLabelBtn-0").click();
|
cy.findByTestId("editTranslationBtn-0").click();
|
||||||
cy.findByTestId("editUserLabelInput-0").click().clear().type("def");
|
cy.findByTestId("editTranslationValueInput-0")
|
||||||
cy.findByTestId("editUserLabelAcceptBtn-0").click();
|
.click()
|
||||||
|
.clear()
|
||||||
|
.type("def");
|
||||||
|
cy.findByTestId("editTranslationAcceptBtn-0").click();
|
||||||
|
|
||||||
cy.findByTestId("editable-rows-table")
|
cy.findByTestId("editable-rows-table")
|
||||||
.contains("td", "def")
|
.contains("td", "def")
|
||||||
|
|
|
@ -2999,3 +2999,46 @@ noItems=There are no items
|
||||||
noItemsInstructions=You haven't created any items in this realm. Create a item to get started.
|
noItemsInstructions=You haven't created any items in this realm. Create a item to get started.
|
||||||
itemSaveError=Error could not save item\! {{error}}
|
itemSaveError=Error could not save item\! {{error}}
|
||||||
itemSaveSuccessful=Sucessful saved
|
itemSaveSuccessful=Sucessful saved
|
||||||
|
realmSelector=Realm selector
|
||||||
|
editTranslationValue=Edit translation value
|
||||||
|
selectAccessTokenSignatureAlgorithm=Select access token signature algorithm
|
||||||
|
selectIdTokenSignatureAlgorithm=Select Id token signature algorithm
|
||||||
|
selectIdTokenEncryptionKeyManagementAlgorithm=Select Id token encryption key management algorithm
|
||||||
|
selectIdTokenEncryptionContentEncryptionAlgorithm=Select Id token encryption content encryption algorithm
|
||||||
|
selectUserInfoSignedResponseAlgorithm=Select user info signed response algorithm
|
||||||
|
selectUserInfoResponseEncryptionKeyManagementAlgorithm=Select user info response encryption key management algorithm
|
||||||
|
selectUserInfoResponseEncryptionContentEncryptionAlgorithm=Select user info response encryption content encryption algorithm
|
||||||
|
selectRequestObjectSignatureAlgorithm=Select request object signature algorithm
|
||||||
|
selectRequestObjectEncryption=Select request object encryption
|
||||||
|
selectRequestObjectEncoding=Select request object encoding
|
||||||
|
selectRequestObjectRequired=Select request object required
|
||||||
|
selectAuthorizationSignedResponseAlgorithm=Select authorization signed response algorithm
|
||||||
|
selectAuthorizationEncryptedResponseAlg=Select authorization encrypted response alg
|
||||||
|
selectAuthorizationEncryptedResponseEnc=Select authorization encrypted response enc
|
||||||
|
generatedCodeTextArea=Generated code textarea
|
||||||
|
selectAuthScopes=Select authorization scopes
|
||||||
|
selectResource= Select resource
|
||||||
|
selectClients=Select clients
|
||||||
|
selectLoginTheme=Select login theme
|
||||||
|
selectAccountTheme=Select account theme
|
||||||
|
selectAdminTheme=Select admin theme
|
||||||
|
selectEmailTheme=Select email theme
|
||||||
|
selectFilterType=Select filter type
|
||||||
|
selectUnmanagedAttributePolicy=Select unmanaged attribute policy
|
||||||
|
selectEventsListeners=Select events listeners
|
||||||
|
selectCachePolicy=Select cache policy
|
||||||
|
selectEvictionDay=Select eviction day
|
||||||
|
selectEvictionHour=Select eviction hour
|
||||||
|
selectEvictionMinute=Select eviction minute
|
||||||
|
selectEditMode=Select edit mode
|
||||||
|
emptySelection=Empty selection
|
||||||
|
readOnlySelection=Read only selection
|
||||||
|
writtableSelection=Writable selection
|
||||||
|
unsyncedSelection=Unsynced selection
|
||||||
|
selectMapperType=Select mapper type
|
||||||
|
editBtn=Edit button
|
||||||
|
acceptBtn=Accept editing button
|
||||||
|
cancelBtn=Cancel editing button
|
||||||
|
chooseBindingType=Choose binding type
|
||||||
|
selectFlowType=Select flow type
|
||||||
|
selectClientAssertionSigningAlg=Select client assertion signing algorithm
|
|
@ -84,6 +84,7 @@ export const BindFlowDialog = ({ flowAlias, onClose }: BindFlowDialogProps) => {
|
||||||
controller={{ defaultValue: flowKeys[0] }}
|
controller={{ defaultValue: flowKeys[0] }}
|
||||||
variant={SelectVariant.single}
|
variant={SelectVariant.single}
|
||||||
menuAppendTo="parent"
|
menuAppendTo="parent"
|
||||||
|
aria-label={t("chooseBindingType")}
|
||||||
/>
|
/>
|
||||||
</FormProvider>
|
</FormProvider>
|
||||||
</Form>
|
</Form>
|
||||||
|
|
|
@ -68,6 +68,7 @@ export default function CreateFlow() {
|
||||||
name="providerId"
|
name="providerId"
|
||||||
label={t("flowType")}
|
label={t("flowType")}
|
||||||
labelIcon={t("topLevelFlowTypeHelp")}
|
labelIcon={t("topLevelFlowTypeHelp")}
|
||||||
|
aria-label={t("selectFlowType")}
|
||||||
controller={{ defaultValue: "" }}
|
controller={{ defaultValue: "" }}
|
||||||
options={TYPES.map((type) => ({
|
options={TYPES.map((type) => ({
|
||||||
key: type,
|
key: type,
|
||||||
|
|
|
@ -187,6 +187,7 @@ export const FineGrainOpenIdConnect = ({
|
||||||
setAccessTokenOpen(false);
|
setAccessTokenOpen(false);
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
|
aria-label={t("selectAccessTokenSignatureAlgorithm")}
|
||||||
>
|
>
|
||||||
{keyOptions}
|
{keyOptions}
|
||||||
</Select>
|
</Select>
|
||||||
|
@ -220,6 +221,7 @@ export const FineGrainOpenIdConnect = ({
|
||||||
setIdTokenOpen(false);
|
setIdTokenOpen(false);
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
|
aria-label={t("selectIdTokenSignatureAlgorithm")}
|
||||||
>
|
>
|
||||||
{keyOptions}
|
{keyOptions}
|
||||||
</Select>
|
</Select>
|
||||||
|
@ -253,6 +255,7 @@ export const FineGrainOpenIdConnect = ({
|
||||||
setIdTokenKeyManagementOpen(false);
|
setIdTokenKeyManagementOpen(false);
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
|
aria-label={t("selectIdTokenEncryptionKeyManagementAlgorithm")}
|
||||||
>
|
>
|
||||||
{cekManagementOptions}
|
{cekManagementOptions}
|
||||||
</Select>
|
</Select>
|
||||||
|
@ -286,6 +289,9 @@ export const FineGrainOpenIdConnect = ({
|
||||||
setIdTokenContentOpen(false);
|
setIdTokenContentOpen(false);
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
|
aria-label={t(
|
||||||
|
"selectIdTokenEncryptionContentEncryptionAlgorithm",
|
||||||
|
)}
|
||||||
>
|
>
|
||||||
{contentOptions}
|
{contentOptions}
|
||||||
</Select>
|
</Select>
|
||||||
|
@ -319,6 +325,7 @@ export const FineGrainOpenIdConnect = ({
|
||||||
setUserInfoSignedResponseOpen(false);
|
setUserInfoSignedResponseOpen(false);
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
|
aria-label={t("selectUserInfoSignedResponseAlgorithm")}
|
||||||
>
|
>
|
||||||
{signatureOptions}
|
{signatureOptions}
|
||||||
</Select>
|
</Select>
|
||||||
|
@ -352,6 +359,9 @@ export const FineGrainOpenIdConnect = ({
|
||||||
setUserInfoResponseEncryptionKeyManagementOpen(false);
|
setUserInfoResponseEncryptionKeyManagementOpen(false);
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
|
aria-label={t(
|
||||||
|
"selectUserInfoResponseEncryptionKeyManagementAlgorithm",
|
||||||
|
)}
|
||||||
>
|
>
|
||||||
{cekManagementOptions}
|
{cekManagementOptions}
|
||||||
</Select>
|
</Select>
|
||||||
|
@ -387,6 +397,9 @@ export const FineGrainOpenIdConnect = ({
|
||||||
setUserInfoResponseEncryptionContentEncryptionOpen(false);
|
setUserInfoResponseEncryptionContentEncryptionOpen(false);
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
|
aria-label={t(
|
||||||
|
"selectUserInfoResponseEncryptionContentEncryptionAlgorithm",
|
||||||
|
)}
|
||||||
>
|
>
|
||||||
{contentOptions}
|
{contentOptions}
|
||||||
</Select>
|
</Select>
|
||||||
|
@ -420,6 +433,7 @@ export const FineGrainOpenIdConnect = ({
|
||||||
setRequestObjectSignatureOpen(false);
|
setRequestObjectSignatureOpen(false);
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
|
aria-label={t("selectRequestObjectSignatureAlgorithm")}
|
||||||
>
|
>
|
||||||
{requestObjectOptions}
|
{requestObjectOptions}
|
||||||
</Select>
|
</Select>
|
||||||
|
@ -453,6 +467,7 @@ export const FineGrainOpenIdConnect = ({
|
||||||
setRequestObjectEncryptionOpen(false);
|
setRequestObjectEncryptionOpen(false);
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
|
aria-label={t("selectRequestObjectEncryption")}
|
||||||
>
|
>
|
||||||
{requestObjectEncryptionOptions}
|
{requestObjectEncryptionOptions}
|
||||||
</Select>
|
</Select>
|
||||||
|
@ -486,6 +501,7 @@ export const FineGrainOpenIdConnect = ({
|
||||||
setRequestObjectEncodingOpen(false);
|
setRequestObjectEncodingOpen(false);
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
|
aria-label={t("selectRequestObjectEncoding")}
|
||||||
>
|
>
|
||||||
{requestObjectEncodingOptions}
|
{requestObjectEncodingOptions}
|
||||||
</Select>
|
</Select>
|
||||||
|
@ -519,6 +535,7 @@ export const FineGrainOpenIdConnect = ({
|
||||||
setRequestObjectRequiredOpen(false);
|
setRequestObjectRequiredOpen(false);
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
|
aria-label={t("selectRequestObjectRequired")}
|
||||||
>
|
>
|
||||||
{requestObjectRequiredOptions}
|
{requestObjectRequiredOptions}
|
||||||
</Select>
|
</Select>
|
||||||
|
@ -569,6 +586,7 @@ export const FineGrainOpenIdConnect = ({
|
||||||
setAuthorizationSignedOpen(false);
|
setAuthorizationSignedOpen(false);
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
|
aria-label={t("selectAuthorizationSignedResponseAlg")}
|
||||||
>
|
>
|
||||||
{authorizationSignedResponseOptions}
|
{authorizationSignedResponseOptions}
|
||||||
</Select>
|
</Select>
|
||||||
|
@ -602,6 +620,7 @@ export const FineGrainOpenIdConnect = ({
|
||||||
setAuthorizationEncryptedOpen(false);
|
setAuthorizationEncryptedOpen(false);
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
|
aria-label={t("selectAuthorizationEncryptedResponseAlg")}
|
||||||
>
|
>
|
||||||
{cekManagementOptions}
|
{cekManagementOptions}
|
||||||
</Select>
|
</Select>
|
||||||
|
@ -635,6 +654,7 @@ export const FineGrainOpenIdConnect = ({
|
||||||
setAuthorizationEncryptedResponseOpen(false);
|
setAuthorizationEncryptedResponseOpen(false);
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
|
aria-label={t("selectAuthorizationEncryptedResponseEnc")}
|
||||||
>
|
>
|
||||||
{contentOptions}
|
{contentOptions}
|
||||||
</Select>
|
</Select>
|
||||||
|
|
|
@ -381,8 +381,9 @@ const AuthorizationEvaluateContent = ({ client }: Props) => {
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
variant={SelectVariant.typeaheadMulti}
|
variant={SelectVariant.typeaheadMulti}
|
||||||
typeAheadAriaLabel={t("authScopes")}
|
typeAheadAriaLabel={t("selectAuthScopes")}
|
||||||
isOpen={scopesDropdownOpen}
|
isOpen={scopesDropdownOpen}
|
||||||
|
aria-label={t("selectAuthScopes")}
|
||||||
>
|
>
|
||||||
{scopes.map((scope) => (
|
{scopes.map((scope) => (
|
||||||
<SelectOption
|
<SelectOption
|
||||||
|
|
|
@ -42,7 +42,7 @@ export const NewPolicyDialog = ({
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal
|
<Modal
|
||||||
aria-labelledby={t("addPredefinedMappers")}
|
aria-label={t("createPolicy")}
|
||||||
variant={ModalVariant.medium}
|
variant={ModalVariant.medium}
|
||||||
header={
|
header={
|
||||||
<TextContent>
|
<TextContent>
|
||||||
|
|
|
@ -261,7 +261,7 @@ export const ResourcesPolicySelect = ({
|
||||||
setSearch("");
|
setSearch("");
|
||||||
}}
|
}}
|
||||||
isOpen={open}
|
isOpen={open}
|
||||||
aria-labelledby={t(name)}
|
aria-label={t(name)}
|
||||||
isDisabled={!!preSelected}
|
isDisabled={!!preSelected}
|
||||||
validated={errors[name] ? "error" : "default"}
|
validated={errors[name] ? "error" : "default"}
|
||||||
typeAheadAriaLabel={t(name)}
|
typeAheadAriaLabel={t(name)}
|
||||||
|
|
|
@ -88,6 +88,7 @@ export const Client = () => {
|
||||||
onToggle={(open) => setOpen(open)}
|
onToggle={(open) => setOpen(open)}
|
||||||
isOpen={open}
|
isOpen={open}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
|
aria-label={t("selectClients")}
|
||||||
onFilter={(_, value) => {
|
onFilter={(_, value) => {
|
||||||
setSearch(value);
|
setSearch(value);
|
||||||
return convert(clients);
|
return convert(clients);
|
||||||
|
|
|
@ -107,6 +107,7 @@ export const OIDCAuthentication = ({ create = true }: { create?: boolean }) => {
|
||||||
}}
|
}}
|
||||||
selections={field.value || t("algorithmNotSpecified")}
|
selections={field.value || t("algorithmNotSpecified")}
|
||||||
variant={SelectVariant.single}
|
variant={SelectVariant.single}
|
||||||
|
aria-label={t("selectClientAssertionSigningAlg")}
|
||||||
isOpen={openClientAuthSigAlg}
|
isOpen={openClientAuthSigAlg}
|
||||||
>
|
>
|
||||||
{[
|
{[
|
||||||
|
|
|
@ -321,6 +321,7 @@ export const RealmSettingsEmailTab = ({
|
||||||
{currentUser.email ? (
|
{currentUser.email ? (
|
||||||
<Alert
|
<Alert
|
||||||
variant="info"
|
variant="info"
|
||||||
|
component="h2"
|
||||||
isInline
|
isInline
|
||||||
title={t("testConnectionHint.withEmail", {
|
title={t("testConnectionHint.withEmail", {
|
||||||
email: currentUser.email,
|
email: currentUser.email,
|
||||||
|
|
|
@ -269,6 +269,7 @@ export const RealmSettingsGeneralTab = ({
|
||||||
selections={userProfileConfig?.unmanagedAttributePolicy}
|
selections={userProfileConfig?.unmanagedAttributePolicy}
|
||||||
variant={SelectVariant.single}
|
variant={SelectVariant.single}
|
||||||
isOpen={isUnmanagedAttributeOpen}
|
isOpen={isUnmanagedAttributeOpen}
|
||||||
|
aria-label={t("selectUnmanagedAttributePolicy")}
|
||||||
>
|
>
|
||||||
{unmanagedAttributePolicies.map((policy) => (
|
{unmanagedAttributePolicies.map((policy) => (
|
||||||
<SelectOption key={policy} value={policy}>
|
<SelectOption key={policy} value={policy}>
|
||||||
|
|
|
@ -135,6 +135,7 @@ export const PartialExportDialog = ({
|
||||||
<Alert
|
<Alert
|
||||||
data-testid="warning-message"
|
data-testid="warning-message"
|
||||||
variant="warning"
|
variant="warning"
|
||||||
|
component="p"
|
||||||
title={t("exportWarningTitle")}
|
title={t("exportWarningTitle")}
|
||||||
isInline
|
isInline
|
||||||
>
|
>
|
||||||
|
|
|
@ -338,6 +338,8 @@ export const PartialImportDialog = (props: PartialImportProps) => {
|
||||||
<Select
|
<Select
|
||||||
toggleId="realm-selector"
|
toggleId="realm-selector"
|
||||||
isOpen={isRealmSelectOpen}
|
isOpen={isRealmSelectOpen}
|
||||||
|
typeAheadAriaLabel={t("realmSelector")}
|
||||||
|
aria-label={"realmSelector"}
|
||||||
onToggle={() => setIsRealmSelectOpen(!isRealmSelectOpen)}
|
onToggle={() => setIsRealmSelectOpen(!isRealmSelectOpen)}
|
||||||
onSelect={(_, value) => handleRealmSelect(value)}
|
onSelect={(_, value) => handleRealmSelect(value)}
|
||||||
placeholderText={targetRealm.realm || targetRealm.id}
|
placeholderText={targetRealm.realm || targetRealm.id}
|
||||||
|
@ -466,7 +468,12 @@ export const PartialImportDialog = (props: PartialImportProps) => {
|
||||||
</Button>,
|
</Button>,
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<Alert variant="success" isInline title={importCompleteMessage()} />
|
<Alert
|
||||||
|
variant="success"
|
||||||
|
component="p"
|
||||||
|
isInline
|
||||||
|
title={importCompleteMessage()}
|
||||||
|
/>
|
||||||
<KeycloakDataTable
|
<KeycloakDataTable
|
||||||
loader={loader}
|
loader={loader}
|
||||||
isPaginated
|
isPaginated
|
||||||
|
|
|
@ -76,6 +76,7 @@ export const RealmSettingsThemesTab = ({
|
||||||
isOpen={loginThemeOpen}
|
isOpen={loginThemeOpen}
|
||||||
placeholderText={t("selectATheme")}
|
placeholderText={t("selectATheme")}
|
||||||
data-testid="select-login-theme"
|
data-testid="select-login-theme"
|
||||||
|
aria-label={t("selectLoginTheme")}
|
||||||
>
|
>
|
||||||
{themeTypes.login.map((theme, idx) => (
|
{themeTypes.login.map((theme, idx) => (
|
||||||
<SelectOption
|
<SelectOption
|
||||||
|
@ -114,7 +115,7 @@ export const RealmSettingsThemesTab = ({
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
variant={SelectVariant.single}
|
variant={SelectVariant.single}
|
||||||
aria-label={t("accountTheme")}
|
aria-label={t("selectAccountTheme")}
|
||||||
isOpen={accountThemeOpen}
|
isOpen={accountThemeOpen}
|
||||||
placeholderText={t("selectATheme")}
|
placeholderText={t("selectATheme")}
|
||||||
data-testid="select-account-theme"
|
data-testid="select-account-theme"
|
||||||
|
@ -161,6 +162,7 @@ export const RealmSettingsThemesTab = ({
|
||||||
isOpen={adminUIThemeOpen}
|
isOpen={adminUIThemeOpen}
|
||||||
placeholderText={t("selectATheme")}
|
placeholderText={t("selectATheme")}
|
||||||
data-testid="select-admin-theme"
|
data-testid="select-admin-theme"
|
||||||
|
aria-label="selectAdminTheme"
|
||||||
>
|
>
|
||||||
{themeTypes.admin
|
{themeTypes.admin
|
||||||
.filter((theme) => theme.name !== "base")
|
.filter((theme) => theme.name !== "base")
|
||||||
|
@ -204,6 +206,7 @@ export const RealmSettingsThemesTab = ({
|
||||||
isOpen={emailThemeOpen}
|
isOpen={emailThemeOpen}
|
||||||
placeholderText={t("selectATheme")}
|
placeholderText={t("selectATheme")}
|
||||||
data-testid="select-email-theme"
|
data-testid="select-email-theme"
|
||||||
|
aria-label={t("selectEmailTheme")}
|
||||||
>
|
>
|
||||||
{themeTypes.email.map((theme, idx) => (
|
{themeTypes.email.map((theme, idx) => (
|
||||||
<SelectOption
|
<SelectOption
|
||||||
|
|
|
@ -75,7 +75,7 @@ export const EventListenersForm = ({
|
||||||
field.onChange([]);
|
field.onChange([]);
|
||||||
}}
|
}}
|
||||||
isOpen={selectEventListenerOpen}
|
isOpen={selectEventListenerOpen}
|
||||||
aria-labelledby={"eventsListeners"}
|
aria-label={"selectEventsListeners"}
|
||||||
>
|
>
|
||||||
{Object.keys(eventListeners!).map((event) => (
|
{Object.keys(eventListeners!).map((event) => (
|
||||||
<SelectOption key={event} value={event} />
|
<SelectOption key={event} value={event} />
|
||||||
|
|
|
@ -67,6 +67,7 @@ const SelectFilter = ({ onFilter }: SelectFilterProps) => {
|
||||||
toggleFilter();
|
toggleFilter();
|
||||||
}}
|
}}
|
||||||
selections={filterType}
|
selections={filterType}
|
||||||
|
aria-label={t("selectFilterType")}
|
||||||
>
|
>
|
||||||
{FILTER_OPTIONS.map((option) => (
|
{FILTER_OPTIONS.map((option) => (
|
||||||
<SelectOption
|
<SelectOption
|
||||||
|
|
|
@ -491,10 +491,10 @@ export const RealmOverrides = ({
|
||||||
{editStates[rowIndex] ? (
|
{editStates[rowIndex] ? (
|
||||||
<>
|
<>
|
||||||
<KeycloakTextInput
|
<KeycloakTextInput
|
||||||
aria-label={t("editUserLabel")}
|
aria-label={t("editTranslationValue")}
|
||||||
type="text"
|
type="text"
|
||||||
className="pf-u-w-initial"
|
className="pf-u-w-initial"
|
||||||
data-testid={`editUserLabelInput-${rowIndex}`}
|
data-testid={`editTranslationValueInput-${rowIndex}`}
|
||||||
value={formValue}
|
value={formValue}
|
||||||
onChange={(
|
onChange={(
|
||||||
event: ChangeEvent<HTMLInputElement>,
|
event: ChangeEvent<HTMLInputElement>,
|
||||||
|
@ -506,15 +506,17 @@ export const RealmOverrides = ({
|
||||||
<Button
|
<Button
|
||||||
variant="link"
|
variant="link"
|
||||||
className="pf-m-plain"
|
className="pf-m-plain"
|
||||||
data-testid={`editUserLabelAcceptBtn-${rowIndex}`}
|
data-testid={`editTranslationAcceptBtn-${rowIndex}`}
|
||||||
type="submit"
|
type="submit"
|
||||||
|
aria-label={t("acceptBtn")}
|
||||||
icon={<CheckIcon />}
|
icon={<CheckIcon />}
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
variant="link"
|
variant="link"
|
||||||
className="pf-m-plain"
|
className="pf-m-plain"
|
||||||
data-testid={`editUserLabelCancelBtn-${rowIndex}`}
|
data-testid={`editTranslationCancelBtn-${rowIndex}`}
|
||||||
icon={<TimesIcon />}
|
icon={<TimesIcon />}
|
||||||
|
aria-label={t("cancelBtn")}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setEditStates((prevEditStates) => ({
|
setEditStates((prevEditStates) => ({
|
||||||
...prevEditStates,
|
...prevEditStates,
|
||||||
|
@ -540,10 +542,10 @@ export const RealmOverrides = ({
|
||||||
}));
|
}));
|
||||||
}}
|
}}
|
||||||
key={`edit-button-${rowIndex}`}
|
key={`edit-button-${rowIndex}`}
|
||||||
aria-label={t("editUserLabel")}
|
aria-label={t("editBtn")}
|
||||||
variant="link"
|
variant="link"
|
||||||
className="pf-m-plain"
|
className="pf-m-plain"
|
||||||
data-testid={`editUserLabelBtn-${rowIndex}`}
|
data-testid={`editTranslationBtn-${rowIndex}`}
|
||||||
>
|
>
|
||||||
<PencilAltIcon />
|
<PencilAltIcon />
|
||||||
</Button>
|
</Button>
|
||||||
|
|
|
@ -83,16 +83,30 @@ export const LdapSettingsSearching = ({
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
variant={SelectVariant.single}
|
variant={SelectVariant.single}
|
||||||
|
aria-label={t("selectEditMode")}
|
||||||
validated={
|
validated={
|
||||||
(form.formState.errors.config as any)?.editMode?.[0]
|
(form.formState.errors.config as any)?.editMode?.[0]
|
||||||
? "error"
|
? "error"
|
||||||
: "default"
|
: "default"
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<SelectOption value="" isPlaceholder />
|
<SelectOption
|
||||||
<SelectOption value="READ_ONLY" />
|
aria-label={t("emptySelection")}
|
||||||
<SelectOption value="WRITABLE" />
|
value=""
|
||||||
<SelectOption value="UNSYNCED" />
|
isPlaceholder
|
||||||
|
/>
|
||||||
|
<SelectOption
|
||||||
|
aria-label={t("readOnlySelection")}
|
||||||
|
value="READ_ONLY"
|
||||||
|
/>
|
||||||
|
<SelectOption
|
||||||
|
aria-label={t("writtableSelection")}
|
||||||
|
value="WRITABLE"
|
||||||
|
/>
|
||||||
|
<SelectOption
|
||||||
|
aria-label={t("unsyncedSelection")}
|
||||||
|
value="UNSYNCED"
|
||||||
|
/>
|
||||||
</Select>
|
</Select>
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -307,6 +307,7 @@ export default function LdapMapperDetails() {
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
variant={SelectVariant.typeahead}
|
variant={SelectVariant.typeahead}
|
||||||
|
aria-label={t("selectMapperType")}
|
||||||
>
|
>
|
||||||
{components.map((c) => (
|
{components.map((c) => (
|
||||||
<SelectOption key={c.id} value={c.id} />
|
<SelectOption key={c.id} value={c.id} />
|
||||||
|
|
|
@ -102,6 +102,7 @@ const CacheFields = ({ form }: { form: UseFormReturn }) => {
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
variant={SelectVariant.single}
|
variant={SelectVariant.single}
|
||||||
data-testid="kerberos-cache-policy"
|
data-testid="kerberos-cache-policy"
|
||||||
|
aria-label={t("selectCachePolicy")}
|
||||||
>
|
>
|
||||||
<SelectOption key={0} value={["DEFAULT"]} isPlaceholder />
|
<SelectOption key={0} value={["DEFAULT"]} isPlaceholder />
|
||||||
<SelectOption key={1} value={["EVICT_DAILY"]} />
|
<SelectOption key={1} value={["EVICT_DAILY"]} />
|
||||||
|
@ -141,6 +142,7 @@ const CacheFields = ({ form }: { form: UseFormReturn }) => {
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
variant={SelectVariant.single}
|
variant={SelectVariant.single}
|
||||||
|
aria-label={t("selectEvictionDay")}
|
||||||
>
|
>
|
||||||
<SelectOption key={0} value="1" isPlaceholder>
|
<SelectOption key={0} value="1" isPlaceholder>
|
||||||
{t("Sunday")}
|
{t("Sunday")}
|
||||||
|
@ -197,6 +199,7 @@ const CacheFields = ({ form }: { form: UseFormReturn }) => {
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
variant={SelectVariant.single}
|
variant={SelectVariant.single}
|
||||||
|
aria-label={t("selectEvictionHour")}
|
||||||
>
|
>
|
||||||
{hourOptions}
|
{hourOptions}
|
||||||
</Select>
|
</Select>
|
||||||
|
@ -229,6 +232,7 @@ const CacheFields = ({ form }: { form: UseFormReturn }) => {
|
||||||
}}
|
}}
|
||||||
selections={field.value}
|
selections={field.value}
|
||||||
variant={SelectVariant.single}
|
variant={SelectVariant.single}
|
||||||
|
aria-label={t("selectEvictionMinute")}
|
||||||
>
|
>
|
||||||
{minuteOptions}
|
{minuteOptions}
|
||||||
</Select>
|
</Select>
|
||||||
|
|
|
@ -68,6 +68,7 @@ export const InlineLabelEdit = ({
|
||||||
data-testid="editUserLabelAcceptBtn"
|
data-testid="editUserLabelAcceptBtn"
|
||||||
variant="link"
|
variant="link"
|
||||||
className="kc-editUserLabelAcceptBtn"
|
className="kc-editUserLabelAcceptBtn"
|
||||||
|
aria-label={t("acceptBtn")}
|
||||||
type="submit"
|
type="submit"
|
||||||
icon={<CheckIcon />}
|
icon={<CheckIcon />}
|
||||||
/>
|
/>
|
||||||
|
@ -75,6 +76,7 @@ export const InlineLabelEdit = ({
|
||||||
data-testid="editUserLabelCancelBtn"
|
data-testid="editUserLabelCancelBtn"
|
||||||
variant="link"
|
variant="link"
|
||||||
className="kc-editUserLabel-cancelBtn"
|
className="kc-editUserLabel-cancelBtn"
|
||||||
|
aria-label={t("cancelBtn")}
|
||||||
onClick={toggle}
|
onClick={toggle}
|
||||||
icon={<TimesIcon />}
|
icon={<TimesIcon />}
|
||||||
/>
|
/>
|
||||||
|
|
Loading…
Reference in a new issue