From e15df73529d05aac539836f100670f5770bf0177 Mon Sep 17 00:00:00 2001 From: Huaxing YUAN Date: Wed, 14 Aug 2024 15:36:17 +0200 Subject: [PATCH 1/3] Accessibility: update to axe core 4.9 --- .../AxaFrance.AxeExtended.HtmlReport.csproj | 2 +- .../AxaFrance.AxeExtended.Selenium.csproj | 2 +- .../AxaFrance.WebEngine.ReportViewer.csproj | 2 +- src/AxaFrance.WebEngine.Web/BrowserFactory.cs | 4 ++-- src/Samples.Gherkin/Samples.Gherkin.csproj | 4 ++-- src/Samples.LinearScripting/Samples.LinearScripting.csproj | 2 +- src/WebEngine.Test/WebEngine.Test.csproj | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/AxaFrance.AxeExtended.HtmlReport/AxaFrance.AxeExtended.HtmlReport.csproj b/src/AxaFrance.AxeExtended.HtmlReport/AxaFrance.AxeExtended.HtmlReport.csproj index 51ecac6..7065f35 100644 --- a/src/AxaFrance.AxeExtended.HtmlReport/AxaFrance.AxeExtended.HtmlReport.csproj +++ b/src/AxaFrance.AxeExtended.HtmlReport/AxaFrance.AxeExtended.HtmlReport.csproj @@ -36,7 +36,7 @@ - + diff --git a/src/AxaFrance.AxeExtended.Selenium/AxaFrance.AxeExtended.Selenium.csproj b/src/AxaFrance.AxeExtended.Selenium/AxaFrance.AxeExtended.Selenium.csproj index 0c67f62..985b962 100644 --- a/src/AxaFrance.AxeExtended.Selenium/AxaFrance.AxeExtended.Selenium.csproj +++ b/src/AxaFrance.AxeExtended.Selenium/AxaFrance.AxeExtended.Selenium.csproj @@ -19,7 +19,7 @@ - + diff --git a/src/AxaFrance.WebEngine.ReportViewer/AxaFrance.WebEngine.ReportViewer.csproj b/src/AxaFrance.WebEngine.ReportViewer/AxaFrance.WebEngine.ReportViewer.csproj index bcd00e3..8f8ddbe 100644 --- a/src/AxaFrance.WebEngine.ReportViewer/AxaFrance.WebEngine.ReportViewer.csproj +++ b/src/AxaFrance.WebEngine.ReportViewer/AxaFrance.WebEngine.ReportViewer.csproj @@ -37,7 +37,7 @@ - + diff --git a/src/AxaFrance.WebEngine.Web/BrowserFactory.cs b/src/AxaFrance.WebEngine.Web/BrowserFactory.cs index a868c92..1686e76 100644 --- a/src/AxaFrance.WebEngine.Web/BrowserFactory.cs +++ b/src/AxaFrance.WebEngine.Web/BrowserFactory.cs @@ -72,7 +72,7 @@ public static WebDriver GetDriver(Platform platform, AxaFrance.WebEngine.Browser /// WebDriver object /// /// - /// If you are another test framework, you must provide additional information to , especially when testing on Mobile Devices. + /// If you are using another test framework, additional information must be provided to , especially when testing on Mobile Devices. /// /// /// This method will take account Desktop browsers and Mobile Devices. If is valorized to 'Android' @@ -415,7 +415,7 @@ private static object GetBrowserStackBrowserName(BrowserType browser) private static WebDriver GetIEDriver() { - throw new Exception("Internet Explorer is not supported anymore. Please update the browser and run tests in one of supported browsers: Chrome, Edge, Firefox and Safari"); + throw new NotSupportedException("Internet Explorer is not supported anymore. Please update the browser and run tests in one of supported browsers: Chrome, Edge, Firefox and Safari"); } private static WebDriver GetEdgeDriver(IEnumerable browserOptions) diff --git a/src/Samples.Gherkin/Samples.Gherkin.csproj b/src/Samples.Gherkin/Samples.Gherkin.csproj index f27e0a0..27e5562 100644 --- a/src/Samples.Gherkin/Samples.Gherkin.csproj +++ b/src/Samples.Gherkin/Samples.Gherkin.csproj @@ -7,11 +7,11 @@ - + - + diff --git a/src/Samples.LinearScripting/Samples.LinearScripting.csproj b/src/Samples.LinearScripting/Samples.LinearScripting.csproj index f75d019..7165e78 100644 --- a/src/Samples.LinearScripting/Samples.LinearScripting.csproj +++ b/src/Samples.LinearScripting/Samples.LinearScripting.csproj @@ -10,7 +10,7 @@ - + diff --git a/src/WebEngine.Test/WebEngine.Test.csproj b/src/WebEngine.Test/WebEngine.Test.csproj index 44ee708..5243f2e 100644 --- a/src/WebEngine.Test/WebEngine.Test.csproj +++ b/src/WebEngine.Test/WebEngine.Test.csproj @@ -27,7 +27,7 @@ - + From ccc21bed8fbd88661f0eeb8ed408f341aec549b7 Mon Sep 17 00:00:00 2001 From: Huaxing YUAN Date: Wed, 21 Aug 2024 10:51:34 +0200 Subject: [PATCH 2/3] axe report multi lang --- .../Assets/axe-core.fr.json | 994 ++++++++++++++++++ .../Assets/report.en.json | 4 + .../AxaFrance.AxeExtended.HtmlReport.csproj | 4 + .../PageReportBuilder.cs | 9 +- .../Properties/launchSettings.json | 4 +- .../AxaFrance.WebEngine.csproj | 9 +- src/AxaFrance.WebEngine/appsettings.json | 31 +- src/AxaFrance.WebEngine/appsettings.json.bak | 25 + src/WebEngine.Test/UnitTests/Accessibility.cs | 114 +- src/WebEngine.Test/UnitTests/AppMobileTest.cs | 20 +- src/WebEngine.Test/WebEngine.Test.csproj | 2 +- src/WebEngine.Test/appsettings.json | 11 +- 12 files changed, 1124 insertions(+), 103 deletions(-) create mode 100644 src/AxaFrance.AxeExtended.HtmlReport/Assets/axe-core.fr.json create mode 100644 src/AxaFrance.AxeExtended.HtmlReport/Assets/report.en.json create mode 100644 src/AxaFrance.WebEngine/appsettings.json.bak diff --git a/src/AxaFrance.AxeExtended.HtmlReport/Assets/axe-core.fr.json b/src/AxaFrance.AxeExtended.HtmlReport/Assets/axe-core.fr.json new file mode 100644 index 0000000..9bd7172 --- /dev/null +++ b/src/AxaFrance.AxeExtended.HtmlReport/Assets/axe-core.fr.json @@ -0,0 +1,994 @@ +{ + "lang": "fr", + "rules": { + "accesskeys": { + "description": "Vérifier que chaque valeur de l’attribut accesskey est unique", + "help": "La valeur de l’attribut accesskey doit être unique" + }, + "area-alt": { + "description": "Vérifier que les éléments d’une image réactive ont une alternative textuelle", + "help": "Les éléments actifs doivent avoir une alternative textuelle" + }, + "aria-allowed-attr": { + "description": "Vérifier que les attributs ARIA sont autorisés pour le rôle d’un élément", + "help": "Les éléments doivent seulement utiliser les attributs ARIA autorisés" + }, + "aria-allowed-role": { + "description": "Vérifier que l’attribut role a une valeur valide pour cet élément", + "help": "Le rôle ARIA doit être valide pour cet élément" + }, + "aria-command-name": { + "description": "Vérifier que chaque \"button\", \"link\" et \"menuitem\" ARIA a un nom accessible", + "help": "Les commandes ARIA doivent avoir un nom accessible" + }, + "aria-dialog-name": { + "description": "Vérifier que chaque nœud ARIA \"dialog\" et \"alertdialog\" a un nom accessible", + "help": "Les nœuds ARIA \"dialog\" and \"alertdialog\" doivent avoir un nom accessible" + }, + "aria-hidden-body": { + "description": "Vérifier qu’aria-hidden='true' n’est pas présent sur le corps du document (élément body)", + "help": "aria-hidden='true' ne doit pas être présent sur " + }, + "aria-hidden-focus": { + "description": "Vérifier qu’aria-hidden n’est pas assigné aux éléments qui reçoivent le focus au clavier", + "help": "aria-hidden n’est pas assigné aux éléments qui reçoivent le focus au clavier" + }, + "aria-input-field-name": { + "description": "Vérifier que chaque champ de formulaire avec ARIA est doté d’un intitulé accessible", + "help": "Les champs de formulaire ARIA ont un intitulé accessible" + }, + "aria-meter-name": { + "description": "Vérifier que chaque nœud ARIA \"meter\" a un nom accessible", + "help": "Les nœuds ARIA \"meter\" doivent avoir un nom accessible" + }, + "aria-progressbar-name": { + "description": "Vérifier que chaque nœud ARIA \"progressbar\" a un nom accessible", + "help": "Les nœuds ARIA \"progressbar\" doivent avoir un nom accessible" + }, + "aria-required-attr": { + "description": "Vérifier que les éléments avec des rôles ARIA ont les attributs ARIA requis", + "help": "Les attributs ARIA requis doivent être présents" + }, + "aria-required-children": { + "description": "Vérifier que les éléments avec un rôle ARIA comportent aussi des rôles pour les descendants directs", + "help": "Certains rôles ARIA doivent comporter des descendants directs spécifiques" + }, + "aria-required-parent": { + "description": "Vérifier que les éléments avec un rôle ARIA requérant des rôles parents y sont contenus", + "help": "Certains rôles ARIA doivent être contenus par des parents spécifiques" + }, + "aria-roledescription": { + "description": "Vérifier qu’aria-roledescription n’est utilisé que sur des éléments qui ont un rôle implicite ou explicite", + "help": "Utiliser aria-roledescription sur les éléments dont le rôle a une valeur sémantique" + }, + "aria-roles": { + "description": "Vérifier que les éléments avec un attribut role utilisent une valeur valide", + "help": "Les rôles ARIA doivent se conformer aux valeurs valides" + }, + "aria-text": { + "description": "Vérifier que \"role=text\" est uniquement utilisé sur des éléments sans descendants focalisables", + "help": "\"role=text\" ne doit pas avoir de descendant focalisable" + }, + "aria-toggle-field-name": { + "description": "Vérifier que chaque champ de basculement ARIA a un libellé accessible", + "help": "Les champs de basculement ARIA ont un libellé accessible" + }, + "aria-tooltip-name": { + "description": "Vérifier que chaque nœud ARIA \"tooltip\" a un nom accessible", + "help": "Les nœuds ARIA \"tooltip\" doivent avoir un nom accessible" + }, + "aria-treeitem-name": { + "description": "Vérifier que chaque nœud ARIA \"treeitem\" a un nom accessible", + "help": "Les nœuds ARIA \"treeitem\" doivent avoir un nom accessible" + }, + "aria-valid-attr-value": { + "description": "Vérifier que tous les attributs ARIA comportent des valeurs valides", + "help": "Les attributs ARIA doivent comporter des valeurs valides" + }, + "aria-valid-attr": { + "description": "Vérifier que les attributs commençant par aria- sont des attributs ARIA valides", + "help": "Les attributs ARIA doivent se conformer aux noms valides" + }, + "audio-caption": { + "description": "Vérifier que les éléments