Skip to content

Commit

Permalink
chore(release): v4.9.0 (#4380)
Browse files Browse the repository at this point in the history
##
[4.9.0](v4.8.4...v4.9.0)
(2024-03-25)

### Features

- adding the wcag131 tag to the aria-hidden-body rule
([#4349](#4349))
([dd4c3c3](dd4c3c3)),
closes [#4315](#4315)
- **checks:** deprecate aria-busy check
([#4356](#4356))
([be0b555](be0b555)),
closes [#4347](#4347)
[#4340](#4340)
- **color:** add color channel values and luminosity, saturation, clip
functions ([#4366](#4366))
([9e70199](9e70199)),
closes
[/github.com//pull/4365/files#r1517706612](https://github.com/dequelabs//github.com/dequelabs/axe-core/pull/4365/files/issues/r1517706612)
- **i18n:** add Greek Translations
([#3836](#3836))
([3ea9a48](3ea9a48))
- **i18n:** Add Italian translation
([#4344](#4344))
([de1baa9](de1baa9))
- **i18n:** Add Simplified Chinese translation
([#4379](#4379))
([bda7c8d](bda7c8d))
- **i18n:** Add Taiwanese Mandarin translation
([#4299](#4299))
([c5e11de](c5e11de))

### Bug Fixes

- Add LICENSE-3RD-PARTY.txt file
([#4304](#4304))
([daa0fe6](daa0fe6))
- add Object.values polyfill for node <=6
([#4274](#4274))
([5eb867b](5eb867b))
- **aria-required-children:** avoid confusing aria-busy message in
failures ([#4347](#4347))
([591607d](591607d)),
closes [#fail13](https://github.com/dequelabs/axe-core/issues/fail13)
[#4340](#4340)
- avoid reading element-specific node properties of non-element node
types ([#4317](#4317))
([b853b18](b853b18)),
closes [#4316](#4316)
[#4316](#4316)
- **color-contrast:** handle text that is outside `overflow: hidden`
ancestor ([#4357](#4357))
([bdb7300](bdb7300)),
closes [#4253](#4253)
- **color-contrast:** support color blend modes hue, saturation, color,
luminosity ([#4365](#4365))
([7ae4761](7ae4761))
- **d.ts:** RawNodesResult issues
([#4229](#4229))
([d660518](d660518))
- **d.ts:** RunOptions.reporter can be any string
([#4218](#4218))
([e53f5c5](e53f5c5))
- **i18n:** update Italian translations
([#4377](#4377))
([4d65d4b](4d65d4b))
- **listitem:** clarify roleNotValid message
([#4374](#4374))
([0f8a9af](0f8a9af))
- **scrollable-region-focusable:** missing wcag213 tag
([#4201](#4201))
([0080a72](0080a72))
- **target-size:** always pass 10x targets (avoid perf bottleneck)
([#4376](#4376))
([be327c4](be327c4))
- **target-size:** do not crash for nodes with many overlapping widgets
([#4373](#4373))
([1dbea83](1dbea83)),
closes [#4359](#4359)
[#4359](#4359)
[#4360](#4360)
- **utils/get-selector:** ignore 'xmlns' attribute when generating a
selector ([#4303](#4303))
([938b411](938b411))

This PR was opened by a robot 🤖 🎉
  • Loading branch information
WilcoFiers committed Mar 25, 2024
2 parents 9ba9d05 + 3a6ce3c commit d847924
Show file tree
Hide file tree
Showing 313 changed files with 11,957 additions and 4,531 deletions.
20 changes: 9 additions & 11 deletions .circleci/config.yml
Expand Up @@ -5,15 +5,15 @@ defaults: &defaults

unix_box: &unix_box
docker:
- image: cimg/node:16.18-browsers
- image: cimg/node:18.18-browsers

unix_nightly_box: &unix_nightly_box
docker:
- image: cimg/node:lts-browsers

orbs:
puppeteer: threetreeslight/puppeteer@0.1.2
browser-tools: circleci/browser-tools@1.4.4
browser-tools: circleci/browser-tools@1.4.8

set_npm_auth: &set_npm_auth
run: npm config set "//registry.npmjs.org/:_authToken" $NPM_AUTH
Expand All @@ -33,9 +33,7 @@ restore_build: &restore_build
commands:
browser-tools-job:
steps:
- browser-tools/install-browser-tools:
# TODO: remove when chromedriver downloads are fixed
chrome-version: 116.0.5845.96
- browser-tools/install-browser-tools

jobs:
# Fetch and cache dependencies.
Expand Down Expand Up @@ -243,15 +241,15 @@ jobs:
- <<: *restore_dependency_cache_unix
- run: npm run test:rule-help-version

# Test node API
test_node:
# Test jsdom API
test_jsdom:
<<: *defaults
<<: *unix_box
steps:
- checkout
- <<: *restore_dependency_cache_unix
- <<: *restore_build
- run: npm run test:node
- run: npm run test:jsdom

# Release a "next" version
next_release:
Expand Down Expand Up @@ -363,7 +361,7 @@ workflows:
- test_rule_help_version:
requires:
- build_unix
- test_node:
- test_jsdom:
requires:
- build_unix
# Verify the sri history is correct
Expand All @@ -388,7 +386,7 @@ workflows:
- test_virtual_rules
- build_api_docs
- test_rule_help_version
- test_node
- test_jsdom
- verify_sri
filters:
branches:
Expand All @@ -406,7 +404,7 @@ workflows:
- test_virtual_rules
- build_api_docs
- test_rule_help_version
- test_node
- test_jsdom
filters:
branches:
only: develop
Expand Down
2 changes: 1 addition & 1 deletion .eslintrc.js
Expand Up @@ -2,7 +2,7 @@ module.exports = {
root: true,
extends: ['prettier'],
parserOptions: {
ecmaVersion: 2021
ecmaVersion: 2023
},
env: {
node: true,
Expand Down
44 changes: 44 additions & 0 deletions .github/dependabot.yml
@@ -0,0 +1,44 @@
version: 2

updates:
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'monthly'
open-pull-requests-limit: 10
commit-message:
prefix: 'chore'
groups:
# Any updates not caught by the group config will get individual PRs
gha-low-risk:
update-types:
- 'minor'
- 'patch'

- package-ecosystem: 'npm'
directory: '/'
schedule:
interval: 'monthly'
open-pull-requests-limit: 10
commit-message:
prefix: 'chore'
ignore:
# Prevent updates to ESM-only versions
- dependency-name: 'chalk'
versions: ['>=5.0.0']
- dependency-name: 'execa'
versions: ['>=6.0.0']
- dependency-name: 'inquirer'
versions: ['>=9.0.0']
- dependency-name: 'chai'
versions: ['>=5.0.0']
# Prevent Webpack error caused by v0.11+ of esbuild
# @see https://github.com/dequelabs/axe-core/issues/3771
- dependency-name: 'esbuild'
versions: ['>=0.11.0']
groups:
# Any updates not caught by the group config will get individual PRs
npm-low-risk:
update-types:
- 'minor'
- 'patch'
15 changes: 5 additions & 10 deletions .github/workflows/format.yml
Expand Up @@ -6,26 +6,21 @@ jobs:
prettier:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
- name: Install dependencies
run: npm ci
- name: Cache node_modules
uses: actions/cache@v3
with:
path: |
./node_modules
key: npm-workspace-cache-${{ runner.os }}-${{ hashFiles('./package-lock.json') }}
- uses: actions/setup-node@v1
- uses: actions/setup-node@v4
with:
node-version: 16
cache: 'npm'
# Workflows are not allowed to edit workflows. As result, we need to prevent Prettier from formatting them.
- name: Prevent workflows from being formatted
run: echo ".github" >> .prettierignore
run: echo ".github" >> .prettierignore && cat .prettierignore
- run: npm run fmt
# Prevent the prettierignore change from being committed.
- run: git checkout .prettierignore
- uses: stefanzweifel/git-auto-commit-action@v4
- uses: stefanzweifel/git-auto-commit-action@8756aa072ef5b4a080af5dc8fef36c5d586e521d # tag=v5
with:
commit_message: ':robot: Automated formatting fixes'
4 changes: 2 additions & 2 deletions .github/workflows/label-extension-linter-issues.yml
Expand Up @@ -11,13 +11,13 @@ jobs:
issues: write
steps:
- name: Label Extension Issues
uses: andymckay/labeler@1.0.4
uses: andymckay/labeler@e6c4322d0397f3240f0e7e30a33b5c5df2d39e90 # tag=1
if: contains(toJson(github.event.issue.body), '### Product\n\naxe Extension\n\n')
with:
add-labels: 'extension'
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Label Linting Issues
uses: andymckay/labeler@1.0.4
uses: andymckay/labeler@e6c4322d0397f3240f0e7e30a33b5c5df2d39e90 # tag=1
if: contains(toJson(github.event.issue.body), '### Product\n\naxe Linter\n\n')
with:
add-labels: 'linting'
Expand Down
13 changes: 4 additions & 9 deletions .github/workflows/release.yml
Expand Up @@ -7,16 +7,13 @@ jobs:
name: Create release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/cache@v3
with:
path: ./node_modules
key: npm-cache-${{ runner.os }}-${{ hashFiles('./package-lock.json') }}
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: 16
cache: 'npm'
- name: Run release script and open PR
run: |
git config user.name "API Team CI User"
Expand All @@ -42,11 +39,9 @@ jobs:
--output-indicator-new=! CHANGELOG.md | egrep '^!' | awk -F'^[!]' '{print $2}' | sed -e 's/\n/$0A/g'
)
echo "chore(release): v$Version" > /tmp/pr.txt
echo "" >> /tmp/pr.txt
echo "$ReleaseNotes" >> /tmp/pr.txt
echo "" >> /tmp/pr.txt
echo "This PR was opened by a robot :robot: :tada:" >> /tmp/pr.txt
hub pull-request --file /tmp/pr.txt --base master
gh pr create --title "chore(release): v$Version" --body-file "/tmp/pr.txt" --base master
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
45 changes: 45 additions & 0 deletions .github/workflows/test.yml
@@ -0,0 +1,45 @@
name: Tests

on:
pull_request:
push:
branches:
- master
- develop

jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- run: npm ci
- run: npm run build
# v4 download seems to have some flakiness with the download of artifacts so pinning to v3 for now
# @see https://github.com/actions/download-artifact/issues/249
- uses: actions/upload-artifact@v3
with:
name: axe-core
path: axe.js
retention-days: 1

test_node:
strategy:
matrix:
node: [6, 18, 20]
runs-on: ubuntu-latest
timeout-minutes: 5
needs: build
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node}}
- uses: actions/download-artifact@v3
with:
name: axe-core
- run: npm run test:node
2 changes: 1 addition & 1 deletion .github/workflows/update-generated-files.yaml
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0

Expand Down
3 changes: 0 additions & 3 deletions .husky/pre-commit
@@ -1,5 +1,2 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npx grunt configure
npx lint-staged
2 changes: 1 addition & 1 deletion .jsdoc.json
Expand Up @@ -12,7 +12,7 @@
"destination": "./doc/api",
"encoding": "utf8",
"recurse": true,
"template": "./node_modules/minami"
"template": "./node_modules/clean-jsdoc-theme"
},
"plugins": ["plugins/markdown"]
}
2 changes: 1 addition & 1 deletion .prettierignore
@@ -1,2 +1,2 @@
node_modules/
doc/api
doc/api
29 changes: 29 additions & 0 deletions CHANGELOG.md
Expand Up @@ -2,6 +2,35 @@

All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.

## [4.9.0](https://github.com/dequelabs/axe-core/compare/v4.8.4...v4.9.0) (2024-03-25)

### Features

- adding the wcag131 tag to the aria-hidden-body rule ([#4349](https://github.com/dequelabs/axe-core/issues/4349)) ([dd4c3c3](https://github.com/dequelabs/axe-core/commit/dd4c3c34a42d2b96f5495890f5c5d5e8f6ca8d32)), closes [#4315](https://github.com/dequelabs/axe-core/issues/4315)
- **checks:** deprecate aria-busy check ([#4356](https://github.com/dequelabs/axe-core/issues/4356)) ([be0b555](https://github.com/dequelabs/axe-core/commit/be0b5558acfbeb6bbb176ac7fd7d8fdfb973b30b)), closes [#4347](https://github.com/dequelabs/axe-core/issues/4347) [#4340](https://github.com/dequelabs/axe-core/issues/4340)
- **color:** add color channel values and luminosity, saturation, clip functions ([#4366](https://github.com/dequelabs/axe-core/issues/4366)) ([9e70199](https://github.com/dequelabs/axe-core/commit/9e7019990bbbf5182ab50c5c968143b81d216dcb)), closes [/github.com/dequelabs/axe-core/pull/4365/files#r1517706612](https://github.com/dequelabs//github.com/dequelabs/axe-core/pull/4365/files/issues/r1517706612)
- **i18n:** add Greek Translations ([#3836](https://github.com/dequelabs/axe-core/issues/3836)) ([3ea9a48](https://github.com/dequelabs/axe-core/commit/3ea9a48cf88d02271db8b19651bff0415237b856))
- **i18n:** Add Italian translation ([#4344](https://github.com/dequelabs/axe-core/issues/4344)) ([de1baa9](https://github.com/dequelabs/axe-core/commit/de1baa9a9f6495f695d25d61d14ed55983dded76))
- **i18n:** Add Simplified Chinese translation ([#4379](https://github.com/dequelabs/axe-core/issues/4379)) ([bda7c8d](https://github.com/dequelabs/axe-core/commit/bda7c8d8bf5936a56c66240e1ea0373a3b769809))
- **i18n:** Add Taiwanese Mandarin translation ([#4299](https://github.com/dequelabs/axe-core/issues/4299)) ([c5e11de](https://github.com/dequelabs/axe-core/commit/c5e11de06973392b113906c05e3a3004af4c38ae))

### Bug Fixes

- Add LICENSE-3RD-PARTY.txt file ([#4304](https://github.com/dequelabs/axe-core/issues/4304)) ([daa0fe6](https://github.com/dequelabs/axe-core/commit/daa0fe677d4837c9c79bad8ee6c77aff11212339))
- add Object.values polyfill for node <=6 ([#4274](https://github.com/dequelabs/axe-core/issues/4274)) ([5eb867b](https://github.com/dequelabs/axe-core/commit/5eb867b04e174140122c62eb5c705a842a3489e1))
- **aria-required-children:** avoid confusing aria-busy message in failures ([#4347](https://github.com/dequelabs/axe-core/issues/4347)) ([591607d](https://github.com/dequelabs/axe-core/commit/591607dd829c11e2cca5beee12c75628d1a8235e)), closes [#fail13](https://github.com/dequelabs/axe-core/issues/fail13) [#4340](https://github.com/dequelabs/axe-core/issues/4340)
- avoid reading element-specific node properties of non-element node types ([#4317](https://github.com/dequelabs/axe-core/issues/4317)) ([b853b18](https://github.com/dequelabs/axe-core/commit/b853b18a24dd2d1c9408705b821cc11146ae1186)), closes [#4316](https://github.com/dequelabs/axe-core/issues/4316) [#4316](https://github.com/dequelabs/axe-core/issues/4316)
- **color-contrast:** handle text that is outside `overflow: hidden` ancestor ([#4357](https://github.com/dequelabs/axe-core/issues/4357)) ([bdb7300](https://github.com/dequelabs/axe-core/commit/bdb7300c67d451d3b0169707924a0c6bc4defe40)), closes [#4253](https://github.com/dequelabs/axe-core/issues/4253)
- **color-contrast:** support color blend modes hue, saturation, color, luminosity ([#4365](https://github.com/dequelabs/axe-core/issues/4365)) ([7ae4761](https://github.com/dequelabs/axe-core/commit/7ae476124d60eafd28d85abf48188cd85c99543a))
- **d.ts:** RawNodesResult issues ([#4229](https://github.com/dequelabs/axe-core/issues/4229)) ([d660518](https://github.com/dequelabs/axe-core/commit/d6605181ec942bcca46e3bfe889064b3781919ca))
- **d.ts:** RunOptions.reporter can be any string ([#4218](https://github.com/dequelabs/axe-core/issues/4218)) ([e53f5c5](https://github.com/dequelabs/axe-core/commit/e53f5c5184a0e5f75db65e7929a9da84d7ee6df6))
- **i18n:** update Italian translations ([#4377](https://github.com/dequelabs/axe-core/issues/4377)) ([4d65d4b](https://github.com/dequelabs/axe-core/commit/4d65d4bf40f4ee2697e079451dd84a0155e8fb51))
- **listitem:** clarify roleNotValid message ([#4374](https://github.com/dequelabs/axe-core/issues/4374)) ([0f8a9af](https://github.com/dequelabs/axe-core/commit/0f8a9af2a82d49e7d8ff3024da0e4c485ca46d38))
- **scrollable-region-focusable:** missing wcag213 tag ([#4201](https://github.com/dequelabs/axe-core/issues/4201)) ([0080a72](https://github.com/dequelabs/axe-core/commit/0080a7255eb7f246bb7b6f53974a95b65983b83a))
- **target-size:** always pass 10x targets (avoid perf bottleneck) ([#4376](https://github.com/dequelabs/axe-core/issues/4376)) ([be327c4](https://github.com/dequelabs/axe-core/commit/be327c422f67ac657218f711b3b799567ba3aa37))
- **target-size:** do not crash for nodes with many overlapping widgets ([#4373](https://github.com/dequelabs/axe-core/issues/4373)) ([1dbea83](https://github.com/dequelabs/axe-core/commit/1dbea83d4749f9f71f263883869b076b0d42021f)), closes [#4359](https://github.com/dequelabs/axe-core/issues/4359) [#4359](https://github.com/dequelabs/axe-core/issues/4359) [#4360](https://github.com/dequelabs/axe-core/issues/4360)
- **utils/get-selector:** ignore 'xmlns' attribute when generating a selector ([#4303](https://github.com/dequelabs/axe-core/issues/4303)) ([938b411](https://github.com/dequelabs/axe-core/commit/938b411bb0609b54e5c46a8e5b50c9ea4de4bdee))

### [4.8.4](https://github.com/dequelabs/axe-core/compare/v4.8.3...v4.8.4) (2024-02-07)

### Bug Fixes
Expand Down
10 changes: 7 additions & 3 deletions README.md
Expand Up @@ -93,17 +93,17 @@ The [axe-core API](doc/API.md) package consists of:

## Localization

Axe can be built using your local language. To do so, a localization file must be added to the `./locales` directory. This file must have be named in the following manner: `<langcode>.json`. To build axe using this locale, instead of the default, run axe with the `--lang` flag, like so:
Axe can be built using your local language. To do so, a localization file must be added to the `./locales` directory. This file must be named in the following manner: `<langcode>.json`. To build axe using this locale, instead of the default, run axe with the `--lang` flag, like so:

`grunt build --lang=nl`

or equivalently:

`npm run build -- --lang=nl`

This will create a new build for axe, called `axe.<lang>.js` and `axe.<lang>.min.js`. If you want to build localized versions, simply pass in `--all-lang` instead. If you want to build multiple localized versions (but not all of them), you can pass in a comma-separated list of languages to the `--lang` flag, like `--lang=nl,ja`.
This will create a new build for axe, called `axe.<lang>.js` and `axe.<lang>.min.js`. If you want to build all localized versions, simply pass in `--all-lang` instead. If you want to build multiple localized versions (but not all of them), you can pass in a comma-separated list of languages to the `--lang` flag, like `--lang=nl,ja`.

To create a new translation for axe, start by running `grunt translate --lang=<langcode>`. This will create a json file fin the `./locales` directory, with the default English text in it for you to translate. Alternatively, you could copy `./locales/_template.json`. We welcome any localization for axe-core. For details on how to contribute, see the Contributing section below. For details on the message syntax, see [Check Message Template](/docs/check-message-template.md).
To create a new translation for axe, start by running `grunt translate --lang=<langcode>`. This will create a json file fin the `./locales` directory, with the default English text in it for you to translate. Alternatively, you could copy `./locales/_template.json`. We welcome any localization for axe-core. For details on how to contribute, see the Contributing section below. For details on the message syntax, see [Check Message Template](/doc/check-message-template.md).

To update existing translation file, re-run `grunt translate --lang=<langcode>`. This will add new messages used in English and remove messages which were not used in English.

Expand Down Expand Up @@ -149,6 +149,10 @@ Axe-core supports the following locales. Do note that since locales are contribu
- Polish
- Portuguese (Brazilian)
- Spanish
- Greek
- Italian
- Simplified Chinese
- Traditional Chinese

## Updates & Security

Expand Down
2 changes: 1 addition & 1 deletion bower.json
@@ -1,6 +1,6 @@
{
"name": "axe-core",
"version": "4.8.4",
"version": "4.9.0",
"deprecated": true,
"contributors": [
{
Expand Down
2 changes: 1 addition & 1 deletion build/check-node-version.js
Expand Up @@ -2,7 +2,7 @@

const currentVersion = process.version.replace('v', '');

const minimumVersionMajor = 12;
const minimumVersionMajor = 18;
const currentVersionMajor = parseInt(currentVersion.split('.')[0]);

const usesMinimumVersion = currentVersionMajor >= minimumVersionMajor;
Expand Down
6 changes: 4 additions & 2 deletions build/configure.js
Expand Up @@ -6,7 +6,7 @@ var clone = require('clone');
var doT = require('@deque/dot');
var templates = require('./templates');
var buildManual = require('./build-manual');
var entities = new (require('html-entities').AllHtmlEntities)();
var { encode } = require('html-entities');
var packageJSON = require('../package.json');
var doTRegex = /\{\{.+?\}\}/g;

Expand Down Expand Up @@ -365,7 +365,7 @@ function buildRules(grunt, options, commons, callback) {

result.push([
`[${rule.id}](https://dequeuniversity.com/rules/axe/${axeVersion}/${rule.id}?application=RuleDescription)`,
entities.encode(rule.metadata.description),
encode(rule.metadata.description),
impact,
rule.tags.join(', '),
issueType.join(', '),
Expand Down Expand Up @@ -401,6 +401,8 @@ ${
.join('\n\n');

var descriptions = `
<!--- This file is automatically generated using build/configure.js --->
# Rule Descriptions
## Table of Contents
Expand Down

0 comments on commit d847924

Please sign in to comment.