Skip to content

Commit 71236d5

Browse files
authored
Merge pull request #2 from myasonik/a11y-fixes-for-tags
a11y fixes
2 parents 7c5c9d5 + c3f3a74 commit 71236d5

File tree

3 files changed

+28
-7
lines changed

3 files changed

+28
-7
lines changed

x-pack/plugins/saved_objects_tagging/public/components/edition_modal/create_or_edit_modal.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import {
2222
EuiTextArea,
2323
EuiSpacer,
2424
EuiText,
25+
htmlIdGenerator,
2526
} from '@elastic/eui';
2627
import { i18n } from '@kbn/i18n';
2728
import { FormattedMessage } from '@kbn/i18n/react';
@@ -52,6 +53,7 @@ export const CreateOrEditModal: FC<CreateOrEditModalProps> = ({
5253
tag,
5354
mode,
5455
}) => {
56+
const optionalMessageId = htmlIdGenerator()();
5557
const ifMounted = useIfMounted();
5658
const [submitting, setSubmitting] = useState<boolean>(false);
5759

@@ -139,6 +141,12 @@ export const CreateOrEditModal: FC<CreateOrEditModalProps> = ({
139141
onClick={() => setColor(getRandomColor())}
140142
size="xs"
141143
style={{ height: '18px', fontSize: '0.75rem' }}
144+
aria-label={i18n.translate(
145+
'xpack.savedObjectsTagging.management.createModal.color.randomizeAriaLabel',
146+
{
147+
defaultMessage: 'Randomize tag color',
148+
}
149+
)}
142150
>
143151
<FormattedMessage
144152
id="xpack.savedObjectsTagging.management.createModal.color.randomize"
@@ -165,7 +173,7 @@ export const CreateOrEditModal: FC<CreateOrEditModalProps> = ({
165173
defaultMessage: 'Description',
166174
})}
167175
labelAppend={
168-
<EuiText size="xs" color="subdued">
176+
<EuiText size="xs" color="subdued" id={optionalMessageId}>
169177
<FormattedMessage
170178
id="xpack.savedObjectsTagging.management.optionalFieldText"
171179
defaultMessage="Optional"
@@ -184,6 +192,7 @@ export const CreateOrEditModal: FC<CreateOrEditModalProps> = ({
184192
resize="none"
185193
fullWidth={true}
186194
compressed={true}
195+
aria-describedby={optionalMessageId}
187196
/>
188197
</EuiFormRow>
189198
</EuiForm>

x-pack/plugins/saved_objects_tagging/public/management/components/table.tsx

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,11 @@ export const TagTable: FC<TagTableProps> = ({
6969
const actions: Array<EuiTableAction<TagWithRelations>> = [];
7070
if (capabilities.edit) {
7171
actions.push({
72-
name: i18n.translate('xpack.savedObjectsTagging.management.table.actions.edit.title', {
73-
defaultMessage: 'Edit',
74-
}),
72+
name: ({ name }) =>
73+
i18n.translate('xpack.savedObjectsTagging.management.table.actions.edit.title', {
74+
defaultMessage: 'Edit {name} tag',
75+
values: { name },
76+
}),
7577
description: i18n.translate(
7678
'xpack.savedObjectsTagging.management.table.actions.edit.description',
7779
{
@@ -86,9 +88,11 @@ export const TagTable: FC<TagTableProps> = ({
8688
}
8789
if (capabilities.delete) {
8890
actions.push({
89-
name: i18n.translate('xpack.savedObjectsTagging.management.table.actions.delete.title', {
90-
defaultMessage: 'Delete',
91-
}),
91+
name: ({ name }) =>
92+
i18n.translate('xpack.savedObjectsTagging.management.table.actions.delete.title', {
93+
defaultMessage: 'Delete {name} tag',
94+
values: { name },
95+
}),
9296
description: i18n.translate(
9397
'xpack.savedObjectsTagging.management.table.actions.delete.description',
9498
{
@@ -187,6 +191,10 @@ export const TagTable: FC<TagTableProps> = ({
187191
items={tags}
188192
pagination={tablePagination}
189193
sorting={sorting}
194+
tableCaption={i18n.translate('xpack.savedObjectsTagging.management.table.columns.caption', {
195+
defaultMessage: 'Tags',
196+
})}
197+
rowHeader="name"
190198
selection={
191199
allowSelection
192200
? {

x-pack/plugins/saved_objects_tagging/public/management/types.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ export interface TagBulkAction {
1818
* The label displayed in the bulk action context menu.
1919
*/
2020
label: string;
21+
/**
22+
* Optional aria-label if the visual label isn't descriptive enough.
23+
*/
24+
'aria-label'?: string;
2125
/**
2226
* An optional icon to display before the label in the context menu.
2327
*/

0 commit comments

Comments
 (0)