├── .gitignore ├── CHANGELOG.md ├── README.md ├── lessons ├── 01-accessible-icon-buttons │ ├── css │ │ └── demo.css │ ├── index.html │ └── package.json ├── 02-accessible-button-events │ ├── css │ │ └── demo.css │ ├── demo.js │ ├── index.html │ ├── lib │ │ └── angular.js │ └── package.json ├── 03-building-forms-with-accessibility-in-mind │ ├── css │ │ └── demo.css │ ├── index.html │ └── package.json ├── 04-headings-and-semantic-structure-for-accessible-web-pages │ ├── info.txt │ └── package.json ├── 05-focus-management-using-css-html-and-javascript │ ├── index.html │ ├── package.json │ ├── script.js │ └── style.css ├── 06-what-is-the-accessibility-tree │ ├── info.md │ └── package.json ├── 07-intro-to-aria │ ├── css │ │ └── demo.css │ ├── index.html │ └── package.json ├── 08-how-visible-vs-hidden-elements-affect-keyboard-screen-reader-users │ ├── css │ │ └── demo.css │ ├── index.html │ └── package.json ├── 09-using-the-voiceover-screen-reader-to-test-for-accessibility │ ├── info.md │ └── package.json ├── 10-testing-for-accessibility-with-the-nvda-screen-reader-on-windows │ ├── info.md │ └── package.json ├── 11-creating-visual-skip-links-in-html-and-css │ ├── css │ │ └── demo.css │ ├── index.html │ └── package.json ├── 12-accessible-modal-dialogs │ ├── index.html │ ├── package.json │ ├── script.js │ └── style.css ├── 13-using-the-tabindex-attribute-for-keyboard-accessibility │ ├── index.html │ ├── package.json │ ├── script.js │ └── style.css ├── 14-basic-accessibility-testing │ ├── info.md │ └── package.json ├── 15-accessibility-testing-with-axe-cli │ ├── info.md │ └── package.json ├── 16-accessible-animations-with-reduced-motion │ ├── css │ │ └── style.css │ ├── index.html │ ├── package.json │ ├── reduce-motion.js │ └── style.scss └── 17-what-is-accessible-name-calculation │ ├── css │ └── demo.css │ ├── index.html │ └── package.json └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 4 | 5 | ## 1.0.0 - 2019-07-27 6 | 7 | All notable changes to "Start Building Accessible Web Applications Today” will be documented in this file. 8 | 9 | ### Added 10 | 11 | - Created this repository. 12 | - Added this CHANGELOG file. 13 | - Added individual lessons as folders to be included under the master branch. 14 | - Added small `package.json` files for all lessons including their lesson names. 15 | - Added `info.md` file to lessons 4, 6, 9, 10, 14, 15, which include links/commands demonstrated in the lesson to enhance user experience. 16 | - Added `` line to the `index.html` on lesson 07. 17 | - Added `` line and `` line to the `index.html` on lesson 13. 18 | - Added third button code to match lesson 13 finished code, as it was previously matching the middle of the video. 19 | 20 | ### Changed 21 | 22 | - Changed `dialog-polyfill#0.4.5->0.5.0`. 23 | - Changed `wicg-inert#1.1.0->2.1.2`. 24 | - Corrected both file paths in lesson 12 for the scripts imported. First script changed: `` -> ``. Second script changed: `` -> ``. 25 | - Changed `scripts.js` in lesson 12 to match lesson's code, as it was simply incorrect. 26 | 27 | ### Removed 28 | 29 | - None. 30 | 31 | ### Deprecated 32 | 33 | - None. 34 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | These lessons can be run locally or with the links provided on codepen. 2 | 3 | [Lesson 01 - accessible-icon-buttons](https://codepen.io/cayden-egghead/pen/OKWWqK) 4 | 5 | [Lesson 02 - accessible-button-events](https://codepen.io/cayden-egghead/pen/NQddQG) 6 | 7 | [Lesson 03 - building-forms-with-accessibility-in-mind](https://codepen.io/cayden-egghead/pen/YmNNmB) 8 | 9 | [Lesson 05 - focus-management-using-css-html-and-javascript](https://codepen.io/cayden-egghead/pen/XvpMrz) 10 | 11 | [Lesson 07 - intro-to-aria](https://codepen.io/cayden-egghead/pen/NQdpWx) 12 | 13 | [Lesson 08 - how-visible-vs-hidden-elements-affect-keyboard-screen](https://codepen.io/cayden-egghead/pen/xvgqxj) 14 | 15 | [Lesson 11 - creating-visual-skip-links-in-html-and-css](https://codepen.io/cayden-egghead/pen/LwxWEg) 16 | 17 | [Lesson 12 - accessible-modal-dialogs](https://codepen.io/cayden-egghead/pen/zgNZGR) 18 | 19 | [Lesson 13 - using-the-tabindex-attribute-for-keyboard-accessibility](https://codepen.io/cayden-egghead/pen/zgNZvR) 20 | 21 | [Lesson 16 - accessible-animations-with-reduced-motion](https://codepen.io/cayden-egghead/pen/NQdpxN) 22 | 23 | [Lesson 17 - what-is-accessible-name-calculation](https://codepen.io/cayden-egghead/pen/oKBZbJ) 24 | -------------------------------------------------------------------------------- /lessons/01-accessible-icon-buttons/css/demo.css: -------------------------------------------------------------------------------- 1 | html, body { 2 | font-family: Helvetica, sans-serif; 3 | text-align: center; 4 | } 5 | main { 6 | padding: 1em; 7 | } 8 | .icon { 9 | display: block; 10 | width: 3em; 11 | height:2.6em; 12 | fill: currentColor; 13 | } 14 | .icon-help { 15 | background: url(https://jsbin-user-assets.s3.amazonaws.com/marcysutton/question.svg) no-repeat center center; 16 | background-size: contain; 17 | } 18 | button, .button { 19 | background-color: buttonface; 20 | border: 2px outset buttonface; 21 | box-sizing: border-box; 22 | display: inline-block; 23 | font-weight: bold; 24 | font-size: 24px; 25 | height: 3em; 26 | line-height: 3em; 27 | padding: 3px 6px 6px; 28 | vertical-align: middle; 29 | -webkit-appearance: button; 30 | } 31 | .visuallyhidden { 32 | border: 0; 33 | clip: rect(0 0 0 0); 34 | height: 1px; 35 | margin: -1px; 36 | overflow: hidden; 37 | padding: 0; 38 | position: absolute; 39 | width: 1px; 40 | } 41 | -------------------------------------------------------------------------------- /lessons/01-accessible-icon-buttons/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |