From 6ac743906799b3e4cdc6b6c52fc4d815a432910f Mon Sep 17 00:00:00 2001 From: Alberto Iannaccone Date: Wed, 9 Feb 2022 20:31:23 +0100 Subject: [PATCH] add axe to create accessibility reports --- arduino-ide-extension/package.json | 3 ++- .../browser/arduino-frontend-contribution.tsx | 14 ++++++++++++-- yarn.lock | 18 ++++++++++++++++++ 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/arduino-ide-extension/package.json b/arduino-ide-extension/package.json index 5730290f..ae538b59 100644 --- a/arduino-ide-extension/package.json +++ b/arduino-ide-extension/package.json @@ -60,6 +60,7 @@ "async-mutex": "^0.3.0", "atob": "^2.1.2", "auth0-js": "^9.14.0", + "@axe-core/react": "^4.3.2", "btoa": "^1.2.1", "css-element-queries": "^1.2.0", "dateformat": "^3.0.3", @@ -165,4 +166,4 @@ "version": "0.6.0" } } -} +} \ No newline at end of file diff --git a/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx b/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx index 5224b54f..77d8858e 100644 --- a/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx +++ b/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx @@ -68,9 +68,15 @@ import { ArduinoPreferences } from './arduino-preferences'; import { SketchesServiceClientImpl } from '../common/protocol/sketches-service-client-impl'; import { SaveAsSketch } from './contributions/save-as-sketch'; import { SketchbookWidgetContribution } from './widgets/sketchbook/sketchbook-widget-contribution'; +import * as ReactDOM from 'react-dom'; const INIT_LIBS_AND_PACKAGES = 'initializedLibsAndPackages'; +declare global { + interface Window { + runAxe: () => void; + } +} @injectable() export class ArduinoFrontendContribution implements @@ -78,8 +84,7 @@ export class ArduinoFrontendContribution TabBarToolbarContribution, CommandContribution, MenuContribution, - ColorContribution -{ + ColorContribution { @inject(ILogger) protected logger: ILogger; @@ -164,6 +169,11 @@ export class ArduinoFrontendContribution @postConstruct() protected async init(): Promise { + window.runAxe = () => { + const axe = require('@axe-core/react'); + axe(React, ReactDOM); + }; + const isFirstStartup = !(await this.localStorageService.getData( INIT_LIBS_AND_PACKAGES )); diff --git a/yarn.lock b/yarn.lock index e8323cd7..f1d116dc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,14 @@ # yarn lockfile v1 +"@axe-core/react@^4.3.2": + version "4.3.2" + resolved "https://registry.yarnpkg.com/@axe-core/react/-/react-4.3.2.tgz#20d175b7bc05e12301ca76fcddeb259a4ae88dbc" + integrity sha512-LSMydcQFFZrqiIqalgywVzHs3paLV6aQHKCba2F7kYWFTpqc/OvQ71NIPkjYY+oF06DgA4ucS2MrcYGbgx8kJg== + dependencies: + axe-core "^4.3.3" + requestidlecallback "^0.3.0" + "@babel/code-frame@7.12.11": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" @@ -4392,6 +4400,11 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== +axe-core@^4.3.3: + version "4.4.1" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.1.tgz#7dbdc25989298f9ad006645cd396782443757413" + integrity sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw== + babel-code-frame@^6.11.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" @@ -12549,6 +12562,11 @@ request@^2.82.0, request@^2.86.0, request@^2.87.0, request@^2.88.0, request@^2.8 tunnel-agent "^0.6.0" uuid "^3.3.2" +requestidlecallback@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/requestidlecallback/-/requestidlecallback-0.3.0.tgz#6fb74e0733f90df3faa4838f9f6a2a5f9b742ac5" + integrity sha1-b7dOBzP5DfP6pIOPn2oqX5t0KsU= + requestretry@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/requestretry/-/requestretry-3.1.0.tgz#c8e1976bb946f14889d3604bbad56a01d191c10d"