mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 09:19:04 -04:00
[Security Solution] Fix Accessibility Tests (#162143)
## Summary This PR un-skips security solution a11y tests. There were four main issues fixes: 1. All list items (`li`) must be contained within `ul` or `ol` parent elements: https://dequeuniversity.com/rules/axe/4.6/listitem?application=axeAPI 2. Lists must be marked up correctly, meaning they must not contain content elements other than `li` elements: https://dequeuniversity.com/rules/axe/4.6/list?application=axeAPI 3. Ensures elements marked `role="img"` elements have alternate text: https://dequeuniversity.com/rules/axe/4.6/role-img-alt?application=axeAPI 4. Each `select` element must have a programmatically associated label element: https://dequeuniversity.com/rules/axe/4.6/select-name?application=axeAPI Fixes next tests: 1. https://github.com/elastic/kibana/issues/95707 2. https://github.com/elastic/kibana/issues/101923
This commit is contained in:
parent
614044bff5
commit
5f913066a9
5 changed files with 34 additions and 35 deletions
|
@ -106,28 +106,25 @@ export const SolutionSideNav: React.FC<SolutionSideNavProps> = React.memo(functi
|
|||
<EuiFlexGroup gutterSize="none" direction="column">
|
||||
<EuiFlexItem>
|
||||
<EuiFlexGroup gutterSize="none" direction="column">
|
||||
<EuiFlexItem>
|
||||
<EuiListGroup gutterSize="none">
|
||||
<SolutionSideNavItems
|
||||
items={topItems}
|
||||
categories={categories}
|
||||
selectedId={selectedId}
|
||||
activePanelNavId={activePanelNavId}
|
||||
isMobileSize={isMobileSize}
|
||||
onOpenPanelNav={openPanelNav}
|
||||
/>
|
||||
</EuiListGroup>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem grow={false}>
|
||||
<EuiListGroup gutterSize="none">
|
||||
<SolutionSideNavItems
|
||||
items={bottomItems}
|
||||
selectedId={selectedId}
|
||||
activePanelNavId={activePanelNavId}
|
||||
isMobileSize={isMobileSize}
|
||||
onOpenPanelNav={openPanelNav}
|
||||
/>
|
||||
</EuiListGroup>
|
||||
<SolutionSideNavItems
|
||||
items={topItems}
|
||||
categories={categories}
|
||||
selectedId={selectedId}
|
||||
activePanelNavId={activePanelNavId}
|
||||
isMobileSize={isMobileSize}
|
||||
onOpenPanelNav={openPanelNav}
|
||||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem />
|
||||
<EuiFlexItem grow={false}>
|
||||
<SolutionSideNavItems
|
||||
items={bottomItems}
|
||||
selectedId={selectedId}
|
||||
activePanelNavId={activePanelNavId}
|
||||
isMobileSize={isMobileSize}
|
||||
onOpenPanelNav={openPanelNav}
|
||||
/>
|
||||
</EuiFlexItem>
|
||||
</EuiFlexGroup>
|
||||
</EuiFlexItem>
|
||||
|
@ -284,16 +281,18 @@ const SolutionSideNavItem: React.FC<SolutionSideNavItemProps> = React.memo(
|
|||
<>
|
||||
<EuiFlexGroup alignItems="center" gutterSize="xs">
|
||||
<EuiFlexItem>
|
||||
<EuiListGroupItem
|
||||
label={itemLabel}
|
||||
href={href}
|
||||
wrapText
|
||||
onClick={onLinkClicked}
|
||||
className={itemClassNames}
|
||||
color="text"
|
||||
size="s"
|
||||
data-test-subj={`solutionSideNavItemLink-${id}`}
|
||||
/>
|
||||
<EuiListGroup gutterSize="none">
|
||||
<EuiListGroupItem
|
||||
label={itemLabel}
|
||||
href={href}
|
||||
wrapText
|
||||
onClick={onLinkClicked}
|
||||
className={itemClassNames}
|
||||
color="text"
|
||||
size="s"
|
||||
data-test-subj={`solutionSideNavItemLink-${id}`}
|
||||
/>
|
||||
</EuiListGroup>
|
||||
</EuiFlexItem>
|
||||
{hasPanelNav && (
|
||||
<EuiFlexItem grow={0}>
|
||||
|
|
|
@ -179,6 +179,7 @@ export const ScheduleItem = ({
|
|||
options={timeTypeOptions.filter((type) => timeTypes.includes(type.value))}
|
||||
onChange={onChangeTimeType}
|
||||
value={timeType}
|
||||
aria-label={field.label}
|
||||
data-test-subj="timeType"
|
||||
{...rest}
|
||||
/>
|
||||
|
|
|
@ -31,7 +31,7 @@ const RuleStatusIconComponent: React.FC<RuleStatusIconProps> = ({ name, type })
|
|||
const color = type === 'passive' ? theme.euiColorLightestShade : theme.euiColorPrimary;
|
||||
return (
|
||||
<RuleStatusIconStyled>
|
||||
<EuiAvatar color={color} name={type === 'valid' ? '' : name} size="l" />
|
||||
<EuiAvatar color={color} name={type === 'valid' ? '' : name} size="l" aria-label={name} />
|
||||
{type === 'valid' ? <EuiIcon type="check" color={theme.euiColorEmptyShade} size="l" /> : null}
|
||||
</RuleStatusIconStyled>
|
||||
);
|
||||
|
|
|
@ -14,8 +14,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const toasts = getService('toasts');
|
||||
const testSubjects = getService('testSubjects');
|
||||
|
||||
// FLAKY: https://github.com/elastic/kibana/issues/95707
|
||||
describe.skip('Security Solution Accessibility', () => {
|
||||
describe('Security Solution Accessibility', () => {
|
||||
before(async () => {
|
||||
await security.testUser.setRoles(['superuser'], { skipBrowserRefresh: true });
|
||||
await common.navigateToApp('security');
|
||||
|
|
|
@ -121,7 +121,7 @@ export class DetectionsPageObject extends FtrService {
|
|||
|
||||
async preview(): Promise<void> {
|
||||
await this.common.clickAndValidate(
|
||||
'queryPreviewButton',
|
||||
'previewSubmitButton',
|
||||
'queryPreviewCustomHistogram',
|
||||
undefined,
|
||||
500
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue