Skip to content

Commit 3c17d04

Browse files
committed
[2025-05-19] Czy wiesz, że w Jest można automatycznie testować dostępność (a11y)?
1 parent a89c365 commit 3c17d04

2 files changed

Lines changed: 53 additions & 0 deletions

File tree

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
layout: post
3+
title: "Czy wiesz, że w Jest można automatycznie testować dostępność (a11y)?"
4+
description: ""
5+
date: 2025-05-19T08:00:00+01:00
6+
published: true
7+
didyouknow: true
8+
lang: pl
9+
author: wstolarski
10+
image: /assets/img/posts/2025-05-19-automatyczne-testowanie-dostepnosci/thumbnail.webp
11+
tags:
12+
- wcag
13+
---
14+
Jeśli projekt wykorzystuje bibliotekę `jest`, to nie wiele wystarczy, aby dodać testy sprawdzające zgodność z WCAG.
15+
16+
`jest-axe` to biblioteka, która umożliwia testowanie dostępności w testach jednostkowych w środowisku `jest`. Pozwala sprawdzić, czy komponenty napisane w `React`, `Angular` czy innych frameworkach spełniają wytyczne WCAG.
17+
18+
Przykład dla Angular:
19+
- W pliku `test-setup.ts` należy zaimportować `jest-axe/extend-expect`
20+
- Poniższy przykład obrazuje test dla komponentu `SomeComponent`:
21+
22+
```typescript
23+
import { ComponentFixture, TestBed } from "@angular/core/testing";
24+
import { axe } from "jest-axe";
25+
26+
import { SomeComponent } from "./some.component";
27+
28+
describe("SomeComponent", () => {
29+
let fixture: ComponentFixture<SomeComponent>;
30+
31+
beforeEach(() => {
32+
TestBed.configureTestingModule({
33+
declarations: [SomeComponent],
34+
});
35+
36+
fixture = TestBed.createComponent(SomeComponent);
37+
});
38+
39+
it("should have no violations", async () => {
40+
const results = await axe(fixture.nativeElement);
41+
expect(results).toHaveNoViolations();
42+
});
43+
});
44+
```
45+
46+
Dla powyższego:
47+
- `axe(fixture.nativeElement)` - uruchamia analizę dostępności dla wygenerowanego HTMLa komponentu
48+
- `expect(results).toHaveNoViolations();` - sprawdza, czy nie znaleziono żadnych błędów związanych z dostępnością (czy np. brakujące atrybutu alt dla obrazków)
49+
50+
Dzięki kilku linijkom kodu przeprowadzenie audytu całego systemu projektowego pod kątem problemów z dostępnością staje się wykonalne! Warto pamiętać, że testy automatyczne wykryją tylko część problemów. **Nie gwarantują** one, że komponent jest w pełni dostępny.
51+
52+
## Przydatne linki
53+
- [Repozytorium biblioteki jest-axe](https://github.com/nickcolley/jest-axe)
133 KB
Loading

0 commit comments

Comments
 (0)