Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jan 31 2019 20:13
    jkodu synchronize #1339
  • Jan 31 2019 20:13

    jkodu on core-preload-cssom-updates

    chore: update code owners with … feat(rule): Require unique aria… fix(i18n): Fix Japanese transla… and 6 more (compare)

  • Jan 31 2019 20:08
    jkodu synchronize #1339
  • Jan 31 2019 20:08

    jkodu on core-preload-cssom-updates

    test: update preload related te… (compare)

  • Jan 31 2019 18:54
    stephenmathieson commented #1343
  • Jan 31 2019 18:54
    stephenmathieson synchronize #1343
  • Jan 31 2019 18:54

    stephenmathieson on remove-grunt-lint

    chore: rerun prettier (#1340) Merge branch 'develop' into rem… (compare)

  • Jan 31 2019 16:53
    jkodu edited #1339
  • Jan 31 2019 16:52
    jkodu edited #1339
  • Jan 31 2019 16:50
    jkodu edited #1339
  • Jan 31 2019 16:49
    jkodu synchronize #1339
  • Jan 31 2019 16:49

    jkodu on core-preload-cssom-updates

    fix: update preload cssom to ca… (compare)

  • Jan 31 2019 16:20
    WilcoFiers closed #1342
  • Jan 31 2019 15:27
    tysonwolker starred dequelabs/axe-core
  • Jan 31 2019 10:27

    jkodu on chore-prettier

    (compare)

  • Jan 31 2019 10:27

    jkodu on develop

    chore: rerun prettier (#1340) (compare)

  • Jan 31 2019 10:27
    jkodu closed #1340
  • Jan 31 2019 09:27
    undeadinu starred dequelabs/axe-core
  • Jan 30 2019 19:05
    AdnoC review_requested #1344
  • Jan 30 2019 19:05
    AdnoC opened #1344
Steven Lambert
@straker
@mistercoffee66 i mean which axe rule is the giving the report? is it aria-required-attr?
Steven Lambert
@straker
better yet, is the page a public URL that I could take a look at?
mistercoffee66
@mistercoffee66
@straker Yes, I will DM you. Thank you!
Kranthi93
@Kranthi93
What are the reasons on why we should not add axe-core tests to check a11y violations to the pipeline? I read they are time consuming ? the difference it is gonna add to the time for running tests is significant?
Nitin V
@nitinvasudevan_gitlab
Is axe WCAG 2.1 compliant? Does anyone know how many of the 17 new 2.1 rules does Axe address?
Wilco Fiers
@WilcoFiers
Hey @nitinvasudevan_gitlab There is relatively little in the new WCAG 2.1 criteria that can be automated. Axe-core currently has 2 rules for the, you can find them here: https://github.com/dequelabs/axe-core/blob/develop/doc/rule-descriptions.md#wcag-21-level-a--aa-rules
LakshmiNagandla
@LakshmiNagandla

Hi All,

When am running Axe-core with selenium-java, for few customer applications, AXE is perfectly working. But for few applications we are getting below error message when we call AXE.Inject method.

"org.openqa.selenium.NoSuchFrameException: no such frame: element is not a frame"

Could you please us how to resolve this issue

LakshmiNagandla
@LakshmiNagandla

HI All,

Getting below error message when we are running "com.deque.html.axe-core with selenium", getting below error message

When we call the method : Results result = builder.withoutIframeSandboxes().analyze(driver)

and

Results result = builder.analyze(driver)

"java.lang.RuntimeException: Error when removing sandbox from iframes"

Jeremy Schneider
@YmerejRedienhcs
Hi, I just found out about axe-core 4. Great, thanks! I'm currently using 3.5.5 integrated into my e2e tests (I go to a page, run axe (inject, run in page, and accumulate the rule violations), rinse, repeat for all the pages). Is there a page detailing the differences between 3.5 and 4? I need to come up with a LOE for moving to 4.
Jeremy Schneider
@YmerejRedienhcs
Is there a functional difference between 3.5 and 4? Is the interface the same, and I should be able to just change the version in my package.json, or will I need to change my JavaScript to call it differently? Here's the way I use it now (trimmed down)
import { source as axeSource } from 'axe-core'; // this gets injected and executed in browser
import axeContext from '../../axeContext';

    // inject the script
    browser.execute(axeSource); 
    let a11yRules = require('../../a11yRulesHub');
    const options = {
      runOnly: {
        type: 'rule',
        values: a11yRules
      }
    };

    const results = browser.executeAsync(({ axeContext, options }, done) => {
      /* eslint no-undef: "off" */
      axe.run(axeContext, options, function (err, results) {
        if (err) throw err;
        done(results);
      });
    }, { axeContext, options });

    if (results.violations.length > 0) {
      if (process.env.AXE_FULL === 'true') {
        console.log(`\n\nFull AXE Violations Output:\n${JSON.stringify(results.violations, null, 4)}\n\n`);
      }
    }
LakshmiNagandla
@LakshmiNagandla

HI All,

Getting below error message when we are running "com.deque.html.axe-core with selenium", getting below error message

When we call the method : Results result = builder.withoutIframeSandboxes().analyze(driver)

and

Results result = builder.analyze(driver)

Code that I have used:

File file = new File("src/main/resources/axe.min.js");

String path = file.getCanonicalPath();

AxeBuilder builder = new AxeBuilder();

String timeoutFilePath = "src/main/resources/axe.min.js";

FileAxeScriptProvider axeScriptProvider = new FileAxeScriptProvider(timeoutFilePath);

builder.setAxeScriptProvider(axeScriptProvider);

Results result = builder.analyze(driver);

List<Rule> violations = result.getViolations();

Assert.assertEquals(0, violations.size(), "No violations found");

"java.lang.RuntimeException: Error when removing sandbox from iframes"

Steven Lambert
@straker
@YmerejRedienhcs the changelog from 3.5.5 to 4.0.0 is available here https://github.com/dequelabs/axe-core/releases/tag/v4.0.0
@LakshmiNagandla I'll see if I can find someone who can answer your questions
LakshmiNagandla
@LakshmiNagandla
Thanks Steven. We are eagarly looking for the solution for the above problem statement.

@straker Really it would be great helpful if you provide answer to us.

Hi All,

Please check above run time exception and let me know what could be the solution to avoid such kind of issues.

Thanks, Lakshmi

Liliia Pelypenko
@lpelypenko

Hi everyone,
I would like to share some of the work I have done for TestCafe + axe-core support. Initially, I wanted to use https://github.com/helen-dikareva/axe-testcafe but the library seems to be not maintained and I noticed that the fork https://github.com/testcafe-community/axe is maintained. I have added some changes to improve the library like increasing peerDependency for axe-core to include new axe-core 4.0.0 (the library is not bundled with the version), returning full axe result object, adding axe.configure. I am not a maintainer of the https://github.com/testcafe-community/axe but I have direct contact with the maintainer and he is responsive :).
I would like to check with you would you be interested to have https://github.com/testcafe-community/axe in https://github.com/dequelabs/axe-core-npm/tree/develop/packages? If not, maybe we could just update examples to use maintained library https://github.com/testcafe-community/axe? If yes, I could speak with maintainers of testcafe-community/axe and propose them to migrate this repo into your https://github.com/dequelabs/axe-core-npm/tree/develop/packages?

In addition to testcafe-axe work I have also developed separately two packages to improve showing axe results:

It would be realy exiting for me to work with you and if you are iterested to have my helpers (html report, console print) that are compatible with any JS frameworks (testcafe, cypress, webdriverjs) included in your https://github.com/dequelabs/axe-core-npm/tree/develop/packages I would be really happy. I can make any improvements you suggest to them. cc @straker

Wilco Fiers
@WilcoFiers
@lpelypenko Thank you for the interesting proposal! I'll reach out to you directly to discuss further.
Satish Telukuntla
@satishdeque

@LakshmiNagandla Can you try the below code and let me know if this is working?
```WebDriver driver = new ChromeDriver();

    driver.get("http://deque.com");

    AxeBuilder builder = new AxeBuilder();

    String timeoutFilePath = "src/main/resources/axe.min.js";

    FileAxeScriptProvider axeScriptProvider = new FileAxeScriptProvider(timeoutFilePath);

    builder.setAxeScriptProvider(axeScriptProvider);

    Results result = builder.withoutIframeSandboxes().analyze(driver);

    List<Rule> violations = result.getViolations();

    System.out.println(violations.size());

    driver.quit();```

If this is also throwing the same error, could you please give us more details like axe.min.js version and the browser version details etc?

LakshmiNagandla
@LakshmiNagandla

@satishdeque , Hi Satish,

For the URL which you have given is working as expected in my code. Only am facing issue when customer application has Iframes, inner frames etc.,

LakshmiNagandla
@LakshmiNagandla

I have used below configuration

axe-min-js version is 3.5.5

axe-core-selenium - 4.0.0

Selenium Java Version - 3.12.0

chrome driver version - 86.0

Could you please help us here why we are getting below error message

java.lang.RuntimeException: Error when removing sandbox from iframes

LakshmiNagandla
@LakshmiNagandla

@satishdeque Hi Sathish,

Can you give some breif details when exactly this kind of issue will occur during accessbiliity testing.

java.lang.RuntimeException: Error when removing sandbox from iframes

Deepak Chaudhary
@chaudharydeepak
Hi Everybody, I am trying to integrate axe-core into 1 another automated testing framework - it has its own web drivers [ no selenium ] - wondering is there a way for me still integrate axe-core to this framework through Java? I am a beginner with axe-core.
Wilco Fiers
@WilcoFiers
It depends. You'll need to inject axe-core into the page you're testing somehow, then trigger it to run and get the results from the driver. If there's some way you can do that, then yes you should be able to.
Deepak Chaudhary
@chaudharydeepak
I possibly can try that - I just need to execute the axe-core js file on the page? what will be the expected response looks like? for now I am seeing response like a boolean true
@WilcoFiers
Deepak Chaudhary
@chaudharydeepak
I guess i figured it out - thank for the input.
Jeremy Schneider
@YmerejRedienhcs
@chaudharydeepak Too late, I guess, but look back at my query from October 14 :point_up: October 14, 2020 12:09 AM
Good Day, axe-core experts! I am upgrading my automated audit from axe-core 3.5.5 to 4.0.2. For some reason, axe-core seems to not recognize the rule 'select-name' that I specify in my runOnly object. It only chokes on that one rule name -- it properly reports violations for all the other rules I have tried (all listed at https://github.com/dequelabs/axe-core/blob/v4.0.2/doc/rule-descriptions.md). Does anyone know why that rule might not be getting recognized?
If it makes any difference, here is an example of how I'm using axe-core:
import { source as axeSource } from 'axe-core'; // this gets injected and executed in browser
import axeContext from '../../axeContext';

// inject the script
browser.execute(axeSource); 
let a11yRules = require('../../a11yRulesHub');
const options = {
  runOnly: {
    type: 'rule',
    values: a11yRules
  }
};

const results = browser.executeAsync(({ axeContext, options }, done) => {
  /* eslint no-undef: "off" */
  axe.run(axeContext, options, function (err, results) {
    if (err) throw err;
    done(results);
  });
}, { axeContext, options });

if (results.violations.length > 0) {
  if (process.env.AXE_FULL === 'true') {
    console.log(`\n\nFull AXE Violations Output:\n${JSON.stringify(results.violations, null, 4)}\n\n`);
  }
}
Jeremy Schneider
@YmerejRedienhcs
Here is the stack trace from the run:
  [chrome 86.0.4240.111 mac os x #0-0] javascript error: unknown rule `select-name` in options.runOnly
  JavaScript stack:
  Error: unknown rule `select-name` in options.runOnly
      at eval (eval at executeScript (:480:16), <anonymous>:9969:27)
      at Array.forEach (<anonymous>)
      at Audit.normalizeOptions (eval at executeScript (:480:16), <anonymous>:9967:29)
      at Audit.run (eval at executeScript (:480:16), <anonymous>:9849:18)
      at eval (eval at executeScript (:480:16), <anonymous>:11777:17)
      at pop (eval at executeScript (:480:16), <anonymous>:15156:20)
      at Object.defer (eval at executeScript (:480:16), <anonymous>:15178:13)
      at Object.runRules [as _runRules] (eval at executeScript (:480:16), <anonymous>:11776:11)
      at Object.run (eval at executeScript (:480:16), <anonymous>:11952:13)
      at eval (eval at executeAsyncScript (:556:26), <anonymous>:8:11)
    (Session info: headless chrome=86.0.4240.111)
Steven Lambert
@straker
Interesting. @YmerejRedienhcs I can't reproduce the issue with this setup:
var options = {
  runOnly: {
    type: 'rule',
    values: ['aria-valid-attr', 'aria-valid-attr-value', 'select-name']
  }
};

await axe.run(options)
tmomalar
@tmomalar
I used https://github.com/dequelabs/axe-core-maven-html and tried to run mvn test but I am getting "Chrome version must be between 71 and 75". Can anyone please let me know if chrome 86 will be supported or any configuration that needs to be done to take the new chrome?
Fiona Evans
@roseacre

We’re getting a mismatch between the number of violations reported from automated accessibility testing, using axe-selenium v 3.0, and manual testing, using the axe chrome plugin v4.6.1.

The axe-selenium tests seem to pick up a couple of extra violations.
(1) <dt> and <dd> elements must be contained by a <dl>
(2) Radio inputs with the same name attribute value must be part of a group

The manual tests don’t report these violations.

We use GovUK Design System components (https://design-system.service.gov.uk/components/) and looking at the source code, the <dt> and <dd> elements are clearly enclosed within <dl> tags. Radio buttons are defined within a form group.

Has anyone else come across this sort of thing? We don’t want to discount the results from the automated testing if there actually is an issue and we’re missing it in the manual tests and visual code inspection.

Steven Lambert
@straker
@roseacre I know sometimes the chrome extension is set to only show certain types of issues (needs review, best practice, etc.) instead of all issues and will show different number of results because of it. after that, if there are any dynamic parts of the page (Facebook integration, ads, etc.) that can also result in different number of results as the page is not completely static
Indradeep Chowdhury
@indradeepchowdhury

Hello, We are using the https://github.com/dequelabs/axe-core-maven-html to automate some of our workflows and want to exclude some sections of our page which are essentially third party widgets that we do not have control over. We are passing the css selectors for those widgets into the AxeBuilder as an exclude. The problem is that we are still seeing the violations getting reported for those sections. This is what the code looks like

final Results result = new AxeBuilder()
                .exclude(excludeSelectors)
                .analyze(driver);

where excludeSelectors is essentially a List<String> of css selectors for the sections to be excluded. I somehow cannot get it to exclude the particular widgets on the page and the results still contain the violations within those sections. What could I be doing wrong? Any help is highly appreciated. Thank you

5 replies
tsharma-indeed
@tsharma-indeed

Hello,

I've reported this issue: dequelabs/axe-core-maven-html#111
on the axe library:

https://github.com/tsharma-indeed/axe-core-maven-html/blob/develop/src/main/java/com/deque/html/axecore/selenium/AxeReporter.java#L160
The below line has an issue. This if statement will never get executed and hence, nodes willl not get appended to the axe results
if (element.getNodes() != null && element.getNodes().isEmpty())
Fix: !element.getNodes().isEmpty() Not (!) should be added to this statement so that further if statements will able to hit

tmomalar
@tmomalar
@indradeepchowdhury - Can you please let me know how you resolved the Chrome version not supported issue if you had one? When I use the axe-core-maven.html I am getting the error "Chrome version must be between 71 and 75"
Indradeep Chowdhury
@indradeepchowdhury
@tmomalar I didn't get that issue. Which Chrome driver are you using?
tmomalar
@tmomalar
@indradeepchowdhury -My current chrome driver is Version 86.0.4240.198 (Official Build) (64-bit), I downloaded the https://github.com/dequelabs/axe-core-maven-html and ran mvn test as per the readme document. I am getting error "Chrome version must be between 71 and 75". Does axe-core-maven from github supports only chrome version 71 to 75?. Please let me know if you have these issues on using the latest chrome version.
Indradeep Chowdhury
@indradeepchowdhury
@tmomalar i did not get this issue but there are others who seem to have reported similar. Did you try these?
Steven Lambert
@straker

@/all To better facilitate communication and support of the various axe products, we've created a new Slack community and invite everyone to join at https://accessibility.deque.com/axe-community.

This Gitter room is being deprecated, but we'll still check it until January. After January 1st we willl no longer actively monitor the Gitter room.

VinodMurthy
@VinodMurthy

Hi Team
while implementing axe in my project we have observed few issue in source code , please let us know any alternative solution for this observation
1.we have implemented axe(4.1.1 version) in my project, after implementing I could see partial reports are getting generated, later compared source code with axe develop branch, here got know one of the condition was missing in source code, that code is available in develop branch .
Note- code is available in develop branch it has to merge master branch to make use.
2.In reports I could see help description content in the place of help URL, here we have to call getHelpUrl method instead of getHelp method.

please find the relevant screen in below loop.

image.png
satish-vytla
@satish-vytla
WEBDRIVER IO framwork supports Accessibility Testing ?
any sample code for realted to webdriver io framework?
Liliia Pelypenko
@lpelypenko
I have an example for WebdriverIO...
Will write to @satish-vytla in PM