Building an Accessible Memory Game with React - From Data Fetching to Error Handling
via freeCodeCamp
Overview
Syllabus
0:00:00 - Intro
0:06:00 - Boilerplate code
0:11:53 - Fetch data from API
0:17:18 - Store API data in state
0:21:19 - Aside: HTML entities
0:26:08 - Render memory cards with API data
0:30:45 - Issue with emojisData
0:33:29 - Get random emojis pt. 1
0:43:32 - Get random emojis pt. 2
0:49:32 - Duplicate and shuffle emojis
0:55:10 - Side note: Address future discrepancies
0:58:59 - Select a memory card pt. 1
1:05:22 - Select a memory card pt. 2
1:10:37 - Select a memory card pt. 3
1:20:16 - Detect matching cards
1:28:50 - Are all memory cards matched?
1:34:11 - Create EmojiButton component
1:42:58 - Identify selected & matched cards in MemoryCard
1:48:38 - Conditional memory card content
1:54:44 - Conditional memory card styling
2:04:33 - Disabled attribute & conditional event handler
2:12:01 - Aside: aria-label & aria-live
2:21:50 - Add aria-label to EmojiButton
2:31:00 - Side note: Renamed state variable
2:32:32 - Create AssistiveTechInfo component
2:41:29 - Aside: aria-atomic
2:47:52 - Make AssistiveTechInfo component accessible
2:50:46 - Create GameOver component
2:54:05 - Add button to GameOver component
3:02:07 - Accessibility issue in GameOver component
3:03:45 - Aside: Focus as an accessibility tool
3:14:14 - Make GameOver component accessible
3:18:11 - Identify error handling issue
3:21:10 - Handle errors with useState
3:26:52 - Create and render ErrorCard component
3:34:24 - Refactor App to use formData
3:42:18 - Create form elements
4:00:19 - Save form selections in state
3:57:44 - Refactor form pt. 1
4:05:15 - Refactor form pt. 2
4:12:13 - Improve accessibility of Form component
4:20:50 - Outro
Taught by
freeCodeCamp.org