Since chrome >= 128 passing --headless will default to use --headless=new. This causes the lazy loaded iframe to have unwanted side effects when running axe and does not catch the #lazy-frame as part of the incomplete results. I have verified that this is also the case in fully headed mode. Note: this also is an issue with our @axe-core/webdriverjs integration when running fully headed or headless=new.
I have verified on Chomedriver 126 this issue doesn't appear. The intermediate workaround is to pass --headless=old as part of the chrome arguments which acts like the old --headless mode.
Follow ups include:
Identifying if this is considered an axe-core bug, running in headed or headless=new mode does not cause the #lazy-iframe to be part of the incomplete results for the frame-tested rule. Note that this doesn't appear to be an issue with Playwright and might be a limitation on Seleniums side and/or a behavioural difference about how the lazy iframes are loaded.
Once we've figured out a fix, we should go and update the test to account for the new changes and amend the headless flag to either the default behaviour or headless=new.
Since chrome >= 128 passing
--headless
will default to use--headless=new
. This causes the lazy loaded iframe to have unwanted side effects when running axe and does not catch the#lazy-frame
as part of the incomplete results. I have verified that this is also the case in fully headed mode. Note: this also is an issue with our @axe-core/webdriverjs integration when running fully headed or headless=new.The test in question: https://github.com/dequelabs/axe-core-maven-html/blob/3d13cc7662e7428c7217ba687e696a0622c9ac62/selenium/src/test/java/com/deque/html/axecore/selenium/Axe43xIntegrationTest.java#L564-L584
I have verified on Chomedriver 126 this issue doesn't appear. The intermediate workaround is to pass
--headless=old
as part of the chrome arguments which acts like the old--headless
mode.Follow ups include:
#lazy-iframe
to be part of the incomplete results for the frame-tested rule. Note that this doesn't appear to be an issue with Playwright and might be a limitation on Seleniums side and/or a behavioural difference about how the lazy iframes are loaded.