-
Notifications
You must be signed in to change notification settings - Fork 1
WCAG 2.2 Implementation Documentation
WCAG 2.2 guidelines are organized into four principles that make web content accessible to a broad range of users:
- Perceivable: Content must be presented in a way users can perceive (e.g., text alternatives for images).
- Operable: User interface components and navigation must be operable (e.g., keyboard accessibility).
- Understandable: Content and controls must be understandable (e.g., clear instructions).
- Robust: Content must be robust enough to work with a variety of assistive technologies (e.g., compatibility with screen readers).
More information about WCAG 2.2 can be found here.
This document outlines the implementation of Web Content Accessibility Guidelines (WCAG) 2.2 in our project, focusing on examples from Lab 5 and recent accessibility improvements. The improvements aim to ensure the application is accessible to all users, including those with disabilities.
Alt text (alternative text) provides a textual description for non-text content, ensuring users who rely on screen readers can understand the purpose of images. The commits regarding this improvement are fd75ad2 and 36dafe0.
-
Example 1:
Alt text added to a Profile Image of a Profile:alt={`Profile picture of ${profile.username}`}
-
Example 2:
Alt text added to an Image of a Tag in Tag Page:alt={`The logo image of ${Tag.name}`} title={`alt:The logo image of ${Tag.name}`}
![image](https://private-user-images.githubusercontent.com/82674996/391140233-152f917d-0a19-4d57-bbda-a74f85e115e2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyMTQ5MTcsIm5iZiI6MTczOTIxNDYxNywicGF0aCI6Ii84MjY3NDk5Ni8zOTExNDAyMzMtMTUyZjkxN2QtMGExOS00ZDU3LWJiZGEtYTc0Zjg1ZTExNWUyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDE5MTAxN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdjNDJhNTkwMGIzMDBkMDg3YmQ1ZGI1Y2Y5MWZjM2IyMDdkZjFjYzE0ZmEzMWU0ODE3M2VmMjdmM2VlOGNmNjUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Z-CS29Wp6mXi7_h6CpH-n_a1UlBzUKhKjfN77lM5MYE)
Color contrast ensures that text is legible against its background, particularly for users with visual impairments.
-
Example 1:
Updating text with low contrast:-- <p className="line-clamp-3 text-sm font-light text-gray-600"> ++ <p className="line-clamp-3 text-sm font-light text-gray-800">
-
Example 2:
Fixed button contrast issues:-- --background: 0 0% 3.9%; ++ --background: 0 0% 5%;
![image](https://private-user-images.githubusercontent.com/82674996/391140739-2fcd398c-c479-481b-9667-f03702523da9.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyMTQ5MTcsIm5iZiI6MTczOTIxNDYxNywicGF0aCI6Ii84MjY3NDk5Ni8zOTExNDA3MzktMmZjZDM5OGMtYzQ3OS00ODFiLTk2NjctZjAzNzAyNTIzZGE5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDE5MTAxN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZhY2NlYmFkNzlhNmZmYWUzNDEwNmE4NjkzNGYxYjAzYWJmMzJjY2UxMWUyZDMzMGRkZDBhM2EzMjQ3ZGFmMTEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0._xAADiVHw7WEVOQtZVlyxbmKU2DtYI2350-FaRuPmjk)
Tabbability ensures users can navigate through the interface using the keyboard.
Skip link functionality to allow users to jump to main content:
<a
href="#main-content"
className="sr-only focus:not-sr-only focus:fixed focus:z-50 focus:block focus:bg-background focus:p-4"
>
Skip to main content
</a>
![image](https://private-user-images.githubusercontent.com/82674996/391141650-8b869f98-cc2b-4d9c-84b7-f123bff9522c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyMTQ5MTcsIm5iZiI6MTczOTIxNDYxNywicGF0aCI6Ii84MjY3NDk5Ni8zOTExNDE2NTAtOGI4NjlmOTgtY2MyYi00ZDljLTg0YjctZjEyM2JmZjk1MjJjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDE5MTAxN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk3ZWJjNjhlZmVhNGU5OTYyOTEwYTljNzYzNTQ2YzRhZGIwNTA1ZTkzNDYyM2QxZjU4Mjc0Yzc4MDMwYjAzOWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.qbxUX4ocozAaKIrxt2TxBeFN0kT7CWYewnTmWOLbBhc)
Automated accessibility testing ensures continuous compliance with WCAG standards.
-
Example 1:
it("should be keyboard navigable", async () => { const { unmount } = render(<TabsExample />); const tabs = screen.getAllByRole("tab"); tabs[0].focus(); expect(document.activeElement).toBe(tabs[0]); await userEvent.keyboard("{ArrowRight}"); expect(document.activeElement).toBe(tabs[1]); await userEvent.keyboard("{ArrowLeft}"); expect(document.activeElement).toBe(tabs[0]); unmount(); });
-
Example 2:
it("should have proper ARIA attributes", () => { render(<TabsExample />); const tablist = screen.getByRole("tablist"); expect(tablist).toHaveAttribute("aria-orientation", "horizontal"); const tabs = screen.getAllByRole("tab"); tabs.forEach((tab) => { expect(tab).toHaveAttribute("aria-selected"); expect(tab).toHaveAttribute("aria-controls"); }); });
By implementing the above improvements, we align the project with WCAG 2.2 standards, making it more inclusive and usable for all users. Each example highlights a critical aspect of accessibility, from descriptive alt texts to robust testing practices.
- Meeting Note 9 - 10.12.2024
- Meeting Note 8 - 03.12.2024
- Meeting Note 7 - 19.11.2024
- Meeting Note 6 - 12.11.2024
- Meeting Note 5 - 05.11.2024
- Feedback Meeting - 29.10.2024
- Meeting Note 4 - 15.10.2024
- Meeting Note 3 - 08.10.2024
- Meeting Note 2 - 01.10.2024
- Meeting Note 1 - 24.09.2024
- Lab Report-1 📝
- Lab Report-2 📝
- Lab Report-3 📝
- Lab Report-4 📝
- Lab Report-5 📝
- Lab Report-6 📝
- Lab Report-7 📝
- Lab Report-8 📝
- Lab Report-9 📝
- Milestone Report
- Additional Scenario & Mockups
- Final Milestone Presentation Scenario
- Requirements
- Standard Implementation Documentation
- Software Design Diagrams ✨
- Customer Feedback for Demo
- Milestone Report
- Presentation Scenario
- Software Quality Standards
- Data Population Strategy
- Customer Feedback for Demo
- Standard Implementation Documentation
- Testing Documentation
- Requirements
- Software Design Diagrams ✨
- Milestone Report
- Scenarios & Mockups 🖌️
- User Stories
- Responsibility Assigment Matrix ☑️
- Class Diagram
- Issue Creation Guidlines ❓
- Wikidata Query Service Guidlines and Resources ❓
- Communication Plan ☎️
- Requirements
352 Sidebar
- Contribution Guide
- Backend Roadmap and Resources
- Issue Creation Guidlines ❓
- Wikidata Query Service Guidlines and Resources ❓
- Communication Plan ☎️
- UI Design Images, Figma
- Requirements
- Frontend Meeting Note 5 - 16.05.2024
- Frontend Meeting Note 4 - 14.05.2024
- Backend Meeting Note 6 - 11.05.2024
- Backend Meeting Note 5 - 10.05.2024
- Backend Meeting Note 4 - 07.05.2024
- Frontend Meeting Note 3 - 07.05.2024
- Backend Meeting Note 3 - 06.05.2024
- Frontend Meeting Note 2 - 05.05.2024
- Frontend Meeting Note 1 - 29.04.2024
- Meeting Note 11 - 28.04.2024
- Backend Meeting Note 2 - 26.04.2024
- Backend Meeting Note 1 - 25.04.2024
- Meeting Note 10 - 21.04.2024
- Meeting Note 9 - 14.04.2024
- Meeting Note 8 - 04.04.2024
- Meeting Note 7 - 23.03.2024
- Customer Meeting Note - 18.03.2024
- Meeting Note 6 - 16.03.2024
- Meeting Note 5 - 12.03.2024
- Meeting Note 4 - 09.03.2024
- Meeting Note 3 - 02.03.2024
- Meeting Note 2 - 24.02.2024
- Meeting Note 1 - 18.02.2024
- Nazire Ata
- Enes Başer
- Aslı Gök
- Çağatay Çolak
- Mehmet Efe Akça
- Yiğit Memceroktay
- Ufuk Altunbulak
- Boray Kasap
- Atakan Yasar