• Stars
    star
    1,075
  • Rank 41,635 (Top 0.9 %)
  • Language
    HTML
  • License
    Other
  • Created about 8 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

WAI-ARIA Authoring Practices Guide (APG)

WAI-ARIA: Authoring Practices Guide

This repository maintains the WAI-ARIA Authoring Practices Guide (APG).

Please do not provide commit access to this repository without coordination.

How the work is organized

  • Work is planned and prioritized in our milestones. Each milestone corresponds to a working draft or release published to w3.org.
  • Work is organized by topic in our projects. Each project corresponds to a type of design pattern or section of guidance.
  • The scope of work and roadmap are described in the project wiki.

Contributing

  1. Comment in an existing issue or raise a new issue, expressing your willingness to help and briefly summarizing the nature of your proposed resolution.
  2. An editor will confirm there are no conflicting plans and, if needed, provide guidance.
  3. Be sure you have linters installed and configured as described below.
  4. Read our wiki page about submitting pull requests.
  5. Do some fabulous work and submit a pull request.

Note: Please feel free to ask questions either through an issue or on the Authoring Practices Task Force mailing list.

Code conformance

This repository utilizes linting tools to do static code analysis and ensure consistent code quality across HTML, CSS, and JavaScript. Each linting tool and respective code standards are documented below and in the code guide.

Pull requests that contain linting errors will not be merged until the errors are resolved. To make this easier, you can install and run the tools locally before pushing code. Also note that the tools for CSS and JavaScript will automatically fix many issues if you have them installed locally. To install these tools:

  1. Make sure that you have Node.js installed, which comes with node package manager (npm)
  2. Open the directory that contains your aria-practices repository in a terminal
  3. Run npm install

The HTML validator also requires the installation of a JDK in order to run. If you don't already have a JDK installed, download the latest JDK from Oracle.

It is also highly recommended that you use a code editor that supports these tools and EditorConfig.

HTML

HTML is validated against the NU HTML Validator. Should a warning or error occur because a future ARIA feature is not yet implemented, it will be added to the .vnurc file, allowing the error to pass through.

Run locally:

npm run lint:html

CSS

CSS is validated by stylelint using the stylelint-config-standard ruleset.

NOTE: on commit, stylelint will be run on staged CSS files. If errors are found that can be automatically fixed with the --fix flag, they will be fixed and the changes committed.

Run locally:

npm run lint:css

JavaScript

JavaScript is validated by ESLint, using our own config.

NOTE: on commit, eslint will be run on staged CSS files. If errors are found that can be automatically fixed with the --fix flag, they will be fixed and the changes committed.

Run locally:

npm run lint:js

Test and fix your code

  1. Open a terminal window to the directory that contains the aria-practices repository
  2. The repository has a script defined that will test all JavaScript in the examples directory. To run it, execute the command npm test. Note: this may take a few minutes to run and will open several browser windows during the test that will gain focus.
  3. Many errors can be fixed automatically with the command npm run fix.
  4. After running fix, test again to see what you need to fix manually.

When the linter encounters errors, it will report them in the console. The error report will contain the file name and line number, and it will indicate the character or place in the line that raised the style violation. To fix an error, satisfy the change that the violation indicates.

For example, here is an error for an invalid variable name style. Variables must follow a camelCase convention.

/Users/user1/Documents/github/aria-practices/examples/slider/js/text-slider.js
  19:8  error  Identifier 'value_nodes' is not in camel case  camelcase

The error occurred in examples/slider/js/text-slider.js, on line 19 and the offending character is indicated by the number 8 after the colon. Change the variable value_nodes to valueNodes in your source file to eliminate this error.

To see the complete list of style rules that are applied by ESLint, review the .eslintrc.json file in the root of the project.

Editorial documentation

See the APG Editorial Style Guidelines for information about writing prose for the APG. The ReadMe for the ARIA specification contains additional useful editorial guidance.

ARIA Roles, Properties and States Referenced in Guidance and Examples(Also known as APG Coverage Report)

APG Coverage Report includes information on number of guidance and example references in the WAI-ARIA Authoring Practices for each ARIA role, property and state.

As of January 11, 2022, APG has examples of

  1. CSV Files of Role, Properties and States Coverage
  2. Roles with no Guidance or Examples (29)
  3. Roles with at Least One Guidance or Example (13)
  4. Roles with More than One Guidance or Example (36)
  5. Properties and States with no Examples (12)
  6. Properties and States with One Examples (8)
  7. Properties and States with More than One Example (28)
  8. Example Coding Practices

More Repositories

1

csswg-drafts

CSS Working Group Editor Drafts
Bikeshed
4,283
star
2

IntersectionObserver

Intersection Observer
Bikeshed
3,623
star
3

ServiceWorker

Service Workers
HTML
3,622
star
4

html

Deliverables of the HTML Working Group until October 2018
HTML
1,943
star
5

css-houdini-drafts

Mirror of https://hg.css-houdini.org/drafts
Bikeshed
1,836
star
6

epubcheck

The conformance checker for EPUB publications
Java
1,466
star
7

webauthn

Web Authentication: An API for accessing Public Key Credentials
HTML
1,012
star
8

webcodecs

WebCodecs is a flexible web API for encoding and decoding audio and video.
HTML
915
star
9

wcag

Web Content Accessibility Guidelines
HTML
906
star
10

webappsec-change-password-url

A Well-Known URL for Changing Passwords
Bikeshed
892
star
11

webtransport

WebTransport is a web API for flexible data transport
Bikeshed
787
star
12

clreq

Requirements for Chinese Text Layout
HTML
700
star
13

respec

A tool for creating technical documents and web standards
JavaScript
699
star
14

svgwg

SVG Working Group specifications
HTML
656
star
15

webdriver

Remote control interface that enables introspection and control of user agents.
HTML
652
star
16

manifest

Manifest for web apps
HTML
648
star
17

webappsec

Web Application Security Working Group repo
HTML
590
star
18

aria

Accessible Rich Internet Applications (WAI-ARIA)
HTML
582
star
19

trusted-types

A browser API to prevent DOM-Based Cross Site Scripting in modern web applications.
JavaScript
582
star
20

webextensions

Charter and administrivia for the WebExtensions Community Group (WECG)
Bikeshed
567
star
21

chinese-ig

Web中文兴趣组
HTML
534
star
22

payment-request

Payment Request API
HTML
480
star
23

musicxml

MusicXML specification
XSLT
471
star
24

trace-context

Trace Context
Python
434
star
25

webrtc-pc

WebRTC 1.0 API
HTML
423
star
26

web-performance

W3C Web Performance Working Group repo
HTML
395
star
27

webappsec-permissions-policy

A mechanism to selectively enable and disable browser features and APIs
Bikeshed
393
star
28

web-advertising

Web Advertising BG - https://www.w3.org/community/web-adv/
HTML
380
star
29

did-core

W3C Decentralized Identifier Specification v1.0
HTML
369
star
30

miniapp

MiniApps Standardization
JavaScript
359
star
31

web-share

Web API proposal for sharing data from a web page
HTML
353
star
32

Mobile-Checker

The Mobile Checker is a tool for Web developers who want to make their Web page or Web app work better on mobile devices.
JavaScript
320
star
33

webdriver-bidi

Bidirectional WebDriver protocol for browser automation
Bikeshed
309
star
34

picture-in-picture

Picture-in-Picture (PiP)
Bikeshed
307
star
35

web-nfc

Web NFC
HTML
303
star
36

websub

WebSub Spec in Social Web Working Group
HTML
284
star
37

wai-tutorials

W3C WAI’s Web Accessibility Tutorials
JavaScript
284
star
38

epub-specs

Shared workspace for EPUB 3 specifications.
HTML
274
star
39

activitystreams

Activity Streams 2.0
HTML
273
star
40

vc-data-model

W3C Verifiable Credentials Working Group — VC Data Model and Representations specification
HTML
269
star
41

webcrypto

The W3C Web Cryptography API
HTML
263
star
42

EasierRDF

Making RDF easy enough for most developers
Python
260
star
43

danmaku

Bullet Chatting Proposal
HTML
258
star
44

webref

Machine-readable references of terms defined in web browser specifications
JavaScript
253
star
45

paint-timing

Paint Timing
Bikeshed
251
star
46

webpayments

The document repo for the Web Payments Working Group
HTML
250
star
47

media-source

Media Source Extensions
HTML
245
star
48

longtasks

Long Task API
Bikeshed
233
star
49

IndexedDB

Indexed Database API
Bikeshed
231
star
50

webidl2.js

WebIDL parser
JavaScript
224
star
51

web-of-things-framework

JavaScript
209
star
52

wot

Web of Things
HTML
208
star
53

smufl

Standard Music Font Layout
HTML
204
star
54

webappsec-csp

WebAppSec Content Security Policy
HTML
201
star
55

browser-specs

A machine-readable list of Web specifications
JavaScript
198
star
56

css-validator

W3C CSS Validation Service
Java
194
star
57

web-share-target

Web API proposal for receiving shared data
HTML
191
star
58

silver

Accessibility Guidelines "Silver"
HTML
190
star
59

web-roadmaps

Framework for Web technology roadmaps
HTML
189
star
60

webcomponents-cg

Web Components community group
HTML
183
star
61

editing

Specs and explainers maintained by the editing task force
HTML
181
star
62

w3c-api

The W3C API
HTML
178
star
63

html-aria

ARIA in HTML
HTML
172
star
64

encrypted-media

Encrypted Media Extensions
HTML
169
star
65

w3process

W3C Process Document
HTML
166
star
66

csvw

Documents produced by the CSV on the Web Working Group
HTML
160
star
67

p2p-webtransport

Interface to create and manage QUIC streams
HTML
156
star
68

strategy

team-strat, on GitHub, working in public. Current state: DRAFT
148
star
69

sdw

Repository for the Spatial Data on the Web Working Group
HTML
148
star
70

automotive

W3C Automotive Working Group Specifications
HTML
145
star
71

uievents

UI Events
HTML
144
star
72

clipboard-apis

Clipboard API and events
HTML
143
star
73

webvtt.js

WebVTT parser and validator
JavaScript
143
star
74

push-api

Push API
HTML
142
star
75

wcag21

Repository used during WCAG 2.1 development. New issues, Technique ideas, and comments should be filed at the WCAG repository at https://github.com/w3c/wcag.
HTML
140
star
76

web-annotation

Web Annotation Working Group repository, see README for links to specs
HTML
138
star
77

gamepad

Gamepad
HTML
138
star
78

mnx

Music Notation CG next-generation music markup proposal.
HTML
136
star
79

elements-of-html

Elements of HTML per version
HTML
135
star
80

w3c.github.io

The W3C organisation
HTML
134
star
81

webrtc-stats

WebRTC Statistics
HTML
128
star
82

libwww

Libwww is a highly modular, general-purpose client side Web API written in C for Unix and Windows (Win32). It's well suited for both small and large applications, like browser/editors, robots, batch tools, etc. Pluggable modules provided with libwww include complete HTTP/1.1 (with caching, pipelining, PUT, POST, Digest Authentication, deflate, etc), MySQL logging, FTP, HTML/4, XML (expat), RDF (SiRPAC), WebDAV, and much more. The purpose of libwww is to serve as a testbed for protocol experiments. This is a complete mirror of the libwww CVS repository
C
128
star
83

aria-at

Assistive Technology ARIA Experience Assessment
HTML
127
star
84

sensors

Generic Sensor API
HTML
126
star
85

web-locks

Cross-tab resource coordination API
Bikeshed
125
star
86

ortc

ORTC Community Group specification repository (see W3C WebRTC for official standards track)
HTML
124
star
87

dxwg

Data Catalog Vocabulary (DCAT)
HTML
124
star
88

wot-thing-description

Web of Things (WoT) Thing Description
HTML
122
star
89

webrtc-encoded-transform

WebRTC Encoded Transform
Bikeshed
121
star
90

mediasession

Media Session API
Bikeshed
120
star
91

Unicorn

Unicorn - W3C's Unified Validator
Java
118
star
92

mediacapture-main

Media Capture and Streams specification (aka getUserMedia)
HTML
118
star
93

sparql-dev

SPARQL dev Community Group
117
star
94

web-animations

🚫 Old repository for the Web Animations specification 🚫. Updated repository:
HTML
116
star
95

resource-timing

Resource Timing
HTML
116
star
96

csswg-test

The former CSS WG test repository
115
star
97

rdf-star

RDF-star specification
HTML
115
star
98

did-spec-registries

DID Spec Registry (Note)
HTML
114
star
99

performance-timeline

Performance Timeline
HTML
113
star
100

navigation-timing

Navigation Timing
HTML
113
star