{"id":13575090,"url":"https://w3c.github.io/aria-practices/","last_synced_at":"2025-04-04T19:30:51.609Z","repository":{"id":37601955,"uuid":"55698731","full_name":"w3c/aria-practices","owner":"w3c","description":"WAI-ARIA Authoring Practices Guide (APG)","archived":false,"fork":false,"pushed_at":"2024-10-29T01:40:36.000Z","size":30542,"stargazers_count":1209,"open_issues_count":640,"forks_count":345,"subscribers_count":111,"default_branch":"main","last_synced_at":"2024-10-29T15:37:40.151Z","etag":null,"topics":["aria","css","html"],"latest_commit_sha":null,"homepage":"https://www.w3.org/wai/aria/apg/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/w3c.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-07T13:55:12.000Z","updated_at":"2024-10-27T21:45:16.000Z","dependencies_parsed_at":"2023-11-14T18:49:28.449Z","dependency_job_id":"6a304513-aa0d-49ed-aad5-596a2c46f58e","html_url":"https://github.com/w3c/aria-practices","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3c%2Faria-practices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3c%2Faria-practices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3c%2Faria-practices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3c%2Faria-practices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/w3c","download_url":"https://codeload.github.com/w3c/aria-practices/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247237614,"owners_count":20906317,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aria","css","html"],"created_at":"2024-08-01T15:00:58.167Z","updated_at":"2025-04-04T19:30:46.598Z","avatar_url":"https://github.com/w3c.png","language":"HTML","funding_links":[],"categories":["Web accessibility (Accessibilité Web)"],"sub_categories":["Normes \u0026 Standards"],"readme":"# WAI-ARIA: Authoring Practices Guide\n\nThis repository maintains the WAI-ARIA Authoring Practices Guide (APG).\n\n- Published at: [w3.org/wai/aria/apg](https://www.w3.org/wai/aria/apg/)\n- Developed by the [Authoring Practices Task Force](https://www.w3.org/WAI/ARIA/task-forces/practices/) of the [ARIA Working Group](http://www.w3.org/WAI/ARIA/)\n- Staff contact: [Daniel Montalvo](https://www.w3.org/people#dmontalvo)\n\nPlease do not provide commit access to this repository without coordination.\n\n## How the work is organized\n\n- Work is planned and prioritized in our [milestones](https://github.com/w3c/aria-practices/milestones?direction=asc\u0026sort=due_date\u0026state=open). Each milestone corresponds to a working draft or release published to w3.org.\n- Work is organized by topic in our [projects](https://github.com/w3c/aria-practices/projects). Each project corresponds to a type of design pattern or section of guidance.\n- The [scope of work and roadmap](https://github.com/w3c/aria-practices/wiki/Scope) are described in the project wiki.\n\n## Contributing\n\n1. Comment in an existing issue or raise a new issue, expressing your willingness to help and briefly summarizing the nature of your proposed resolution.\n2. An editor will confirm there are no conflicting plans and, if needed, provide guidance.\n3. Be sure you have linters installed and configured as described below.\n4. Read our wiki page about [submitting pull requests](https://github.com/w3c/aria-practices/wiki/Submitting-Pull-Requests).\n5. Do some fabulous work and submit a pull request.\n\nNote: Please feel free to ask questions either through an issue or on the [Authoring Practices Task Force mailing list](http://lists.w3.org/Archives/Public/public-aria-practices/).\n\n### Code conformance\n\nThis repository utilizes [linting](https://en.wikipedia.org/wiki/Lint_%28software%29) 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](https://github.com/w3c/aria-practices/wiki/Code-Guide).\n\nPull 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:\n\n1. Make sure that you have [Node.js](https://nodejs.org/en/) installed, which comes with [node package manager (npm)](https://www.npmjs.com/get-npm)\n1. Open the directory that contains your `aria-practices` repository in a terminal\n1. Run `npm install`\n\nThe 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](https://www.oracle.com/technetwork/java/javase/downloads/index.html).\n\nIt is also highly recommended that you use a code editor that supports these tools and [EditorConfig](http://editorconfig.org/).\n\n#### HTML\n\nHTML is validated against the [NU HTML Validator](https://github.com/validator/validator).\nShould a warning or error occur because a future ARIA feature is not yet implemented, it will be added to the [.vnurc file](.vnurc), allowing the error to pass through.\n\nRun locally:\n\n```sh\nnpm run lint:html\n```\n\n#### CSS\n\nCSS is validated by [stylelint](https://stylelint.io/) using the [stylelint-config-standard](https://github.com/stylelint/stylelint-config-standard) ruleset.\n\n**NOTE**: on commit, stylelint will be run on staged CSS files. If errors are found that can be [automatically fixed with the --fix flag](https://stylelint.io/user-guide/cli/#autofixing-errors), they will be fixed and the changes committed.\n\nRun locally:\n\n```sh\nnpm run lint:css\n```\n\n#### JavaScript\n\nJavaScript is validated by [ESLint](http://eslint.org/), using [our own config](.eslintrc.json).\n\n**NOTE**: on commit, eslint will be run on staged CSS files. If errors are found that can be [automatically fixed with the --fix flag](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems), they will be fixed and the changes committed.\n\nRun locally:\n\n```sh\nnpm run lint:js\n```\n\n### Test and fix your code\n\n1. Open a terminal window to the directory that contains the `aria-practices` repository\n1. 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.\n1. Many errors can be fixed automatically with the command `npm run fix`.\n1. After running fix, test again to see what you need to fix manually.\n\nWhen the linter encounters errors, it will report them in the console.\nThe error report will contain the file name and line number, and it will\nindicate the character or place in the line that raised the style violation. To\nfix an error, satisfy the change that the violation indicates.\n\nFor example, here is an error for an invalid variable name style. Variables must\nfollow a camelCase convention.\n\n```sh\n/Users/user1/Documents/github/aria-practices/examples/slider/js/text-slider.js\n  19:8  error  Identifier 'value_nodes' is not in camel case  camelcase\n```\n\nThe error occurred in `examples/slider/js/text-slider.js`, on line 19 and the\noffending character is indicated by the number `8` after the colon. Change the\nvariable `value_nodes` to `valueNodes` in your source file to eliminate this\nerror.\n\nTo see the complete list of style rules that are applied by ESLint, review the [.eslintrc.json](.eslintrc.json) file in the root of the project.\n\n### Editorial documentation\n\nSee the [APG Editorial Style Guidelines](https://github.com/w3c/aria-practices/wiki/APG-Editorial-Style-Guidelines)\nfor information about writing prose for the APG.\nThe [ReadMe for the ARIA specification](https://github.com/w3c/aria/)\ncontains additional useful editorial guidance.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/w3c.github.io%2Faria-practices%2F","html_url":"https://awesome.ecosyste.ms/projects/w3c.github.io%2Faria-practices%2F","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/w3c.github.io%2Faria-practices%2F/lists"}