@yann.sautreuil
Thank you for sharing your achievement. Let me add a bit to your code.
The following code adds some import statements and WebUI.openBrowser() and closeBrowser(). This code performs a Accessibilty testing against the https://katalon-demo-cura.herokuapp.com/
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import groovy.json.JsonSlurper
WebUI.openBrowser('')
WebUI.navigateToUrl('https://katalon-demo-cura.herokuapp.com/')
WebUI.executeJavaScript("""
window.__axeResults = null;
window.__axeError = null;
(function(){
function runAxe(){
axe.run(document).then(function(results){
window.__axeResults = results;
}).catch(function(err){
window.__axeError = err.message || 'Unknown error';
});
}
if (window.axe) {
runAxe();
} else {
var script = document.createElement('script');
script.src = 'https://cdnjs.cloudflare.com/ajax/libs/axe-core/4.7.0/axe.min.js';
script.async = true;
script.onload = runAxe;
script.onerror = function(e){ window.__axeError = 'Failed to load axe-core'; };
document.head.appendChild(script);
}
})();
""", null)
// Wait for axe to finish (adjust delay if needed)
WebUI.delay(5) // 5 seconds
// Retrieve results from the browser
String resultsJson = WebUI.executeJavaScript("""
return JSON.stringify(window.__axeResults || { error: window.__axeError || 'No results yet' });
""", null)
println(resultsJson)
// Parse and print violations
def parsed = new JsonSlurper().parseText(resultsJson)
if (parsed?.violations) {
println("Violations count: ${parsed.violations.size()}")
parsed.violations.each { v ->
println("- ${v.id}: ${v.description} (impact: ${v.impact})")
}
} else {
println("Error or no violations: ${parsed.error}")
}
WebUI.closeBrowser()
When I ran this, I saw the output in the console tab of Katalon Studio GUI.
2025-12-21 11:22:43.084 INFO c.k.k.c.l.logback.LogbackConfigurator - Logback default configuration initialized from: /Applications/Katalon Studio Enterprise.app/Contents/Eclipse/configuration/org.eclipse.osgi/132/0/.cp/resources/logback/logback-execution.xml
2025-12-21 11:22:43.088 INFO c.k.k.c.l.logback.LogbackConfigurator - Logback custom configuration initialized from: /Users/kazuakiurayama/katalon-workspace/healthcare-tests/Include/config/log.properties
2025-12-21 11:22:44.433 INFO c.k.katalon.core.main.TestCaseExecutor - --------------------
2025-12-21 11:22:44.434 INFO c.k.katalon.core.main.TestCaseExecutor - START Test Cases/Axe_by_yann.sautreuil
2025-12-21 11:22:45.015 DEBUG testcase.Axe_by_yann.sautreuil - 1: openBrowser("")
2025-12-21 11:22:45.299 INFO c.k.k.core.webui.driver.DriverFactory - Starting 'Chrome' driver
2025-12-21 11:22:45.309 INFO c.k.k.c.w.util.WebDriverPropertyUtil - User set preference: ['prefs', '{profile.password_manager_leak_detection=false}']
2025-12-21 11:22:45.360 INFO c.k.k.core.webui.driver.DriverFactory - Action delay is set to 0 milliseconds
12月 21, 2025 11:22:55 午前 org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
警告: Unable to find CDP implementation matching 143
12月 21, 2025 11:22:55 午前 org.openqa.selenium.chromium.ChromiumDriver lambda$new$4
警告: Unable to find version of CDP to use for 143.0.7499.147. You may need to include a dependency on a specific version of the CDP using something similar to `org.seleniumhq.selenium:selenium-devtools-v86:4.34.0` where the version ("v86") matches the version of the chromium-based browser you're using and the version number of the artifact is the same as Selenium's.
2025-12-21 11:22:56.440 INFO c.k.k.core.webui.driver.DriverFactory - sessionId = 67846cf04a192206961d5dd164f0a57d
2025-12-21 11:22:56.444 INFO c.k.k.core.webui.driver.DriverFactory - browser = Chrome 143.0.7499.147
2025-12-21 11:22:56.445 INFO c.k.k.core.webui.driver.DriverFactory - platform = Mac OS X
2025-12-21 11:22:56.446 INFO c.k.k.core.webui.driver.DriverFactory - seleniumVersion = 4.34.0
2025-12-21 11:22:56.470 INFO c.k.k.core.webui.driver.DriverFactory - proxyInformation = ProxyInformation { proxyOption=NO_PROXY, proxyServerType=HTTP, username=, password=********, proxyServerAddress=, proxyServerPort=0, executionList="", isApplyToDesiredCapabilities=true }
2025-12-21 11:22:56.637 DEBUG testcase.Axe_by_yann.sautreuil - 2: navigateToUrl("https://katalon-demo-cura.herokuapp.com/")
2025-12-21 11:23:01.346 DEBUG testcase.Axe_by_yann.sautreuil - 3: executeJavaScript("
window.__axeResults = null;
window.__axeError = null;
(function(){
function runAxe(){
axe.run(document).then(function(results){
window.__axeResults = results;
}).catch(function(err){
window.__axeError = err.message || 'Unknown error';
});
}
if (window.axe) {
runAxe();
} else {
var script = document.createElement('script');
script.src = 'https://cdnjs.cloudflare.com/ajax/libs/axe-core/4.7.0/axe.min.js';
script.async = true;
script.onload = runAxe;
script.onerror = function(e){ window.__axeError = 'Failed to load axe-core'; };
document.head.appendChild(script);
}
})();
", null)
2025-12-21 11:23:01.455 DEBUG testcase.Axe_by_yann.sautreuil - 4: delay(5)
2025-12-21 11:23:06.570 DEBUG testcase.Axe_by_yann.sautreuil - 5: resultsJson = executeJavaScript("
return JSON.stringify(window.__axeResults || { error: window.__axeError || 'No results yet' });
", null)
2025-12-21 11:23:06.775 DEBUG testcase.Axe_by_yann.sautreuil - 6: println(resultsJson)
{"testEngine":{"name":"axe-core","version":"4.7.0"},"testRunner":{"name":"axe"},"testEnvironment":{"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36","windowWidth":1200,"windowHeight":692,"orientationAngle":0,"orientationType":"landscape-primary"},"timestamp":"2025-12-21T02:23:05.870Z","url":"https://katalon-demo-cura.herokuapp.com/","toolOptions":{"reporter":"v1"},"inapplicable":[{"id":"accesskeys","impact":null,"tags":["cat.keyboard","best-practice"],"description":"Ensures every accesskey attribute value is unique","help":"accesskey attribute value should be unique","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/accesskeys?application=axeAPI","nodes":[]},{"id":"area-alt","impact":null,"tags":["cat.text-alternatives","wcag2a","wcag244","wcag412","section508","section508.22.a","ACT","TTv5","TT6.a"],"description":"Ensures <area> elements of image maps have alternate text","help":"Active <area> elements must have alternate text","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/area-alt?application=axeAPI","nodes":[]},{"id":"aria-allowed-attr","impact":null,"tags":["cat.aria","wcag2a","wcag412"],"description":"Ensures ARIA attributes are allowed for an element's role","help":"Elements must only use allowed ARIA attributes","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/aria-allowed-attr?application=axeAPI","nodes":[]},{"id":"aria-allowed-role","impact":null,"tags":["cat.aria","best-practice"],"description":"Ensures role attribute has an appropriate value for the element","help":"ARIA role should be appropriate for the element","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/aria-allowed-role?application=axeAPI","nodes":[]},{"id":"aria-command-name","impact":null,"tags":["cat.aria","wcag2a","wcag412","ACT","TTv5","TT6.a"],"description":"Ensures every ARIA button, link and menuitem has an accessible name","help":"ARIA commands must have an accessible name","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/aria-command-name?application=axeAPI","nodes":[]},{"id":"aria-dialog-name","impact":null,"tags":["cat.aria","best-practice"],"description":"Ensures every ARIA dialog and alertdialog node has an accessible name","help":"ARIA dialog and alertdialog nodes should have an accessible name","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/aria-dialog-name?application=axeAPI","nodes":[]},{"id":"aria-hidden-focus","impact":null,"tags":["cat.name-role-value","wcag2a","wcag412"],"description":"Ensures aria-hidden elements are not focusable nor contain focusable elements","help":"ARIA hidden element must not be focusable or contain focusable elements","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/aria-hidden-focus?application=axeAPI","nodes":[]},{"id":"aria-input-field-name","impact":null,"tags":["cat.aria","wcag2a","wcag412","ACT","TTv5","TT5.c"],"description":"Ensures every ARIA input field has an accessible name","help":"ARIA input fields must have an accessible name","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/aria-input-field-name?application=axeAPI","nodes":[]},{"id":"aria-meter-name","impact":null,"tags":["cat.aria","wcag2a","wcag111"],"description":"Ensures every ARIA meter node has an accessible name","help":"ARIA meter nodes must have an accessible name","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/aria-meter-name?application=axeAPI","nodes":[]},{"id":"aria-progressbar-name","impact":null,"tags":["cat.aria","wcag2a","wcag111"],"description":"Ensures every ARIA progressbar node has an accessible name","help":"ARIA progressbar nodes must have an accessible name","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/aria-progressbar-name?application=axeAPI","nodes":[]},{"id":"aria-required-attr","impact":null,"tags":["cat.aria","wcag2a","wcag412"],"description":"Ensures elements with ARIA roles have all required ARIA attributes","help":"Required ARIA attributes must be provided","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/aria-required-attr?application=axeAPI","nodes":[]},{"id":"aria-required-children","impact":null,"tags":["cat.aria","wcag2a","wcag131"],"description":"Ensures elements with an ARIA role that require child roles contain them","help":"Certain ARIA roles must contain particular children","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/aria-required-children?application=axeAPI","nodes":[]},{"id":"aria-required-parent","impact":null,"tags":["cat.aria","wcag2a","wcag131"],"description":"Ensures elements with an ARIA role that require parent roles are contained by them","help":"Certain ARIA roles must be contained by particular parents","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/aria-required-parent?application=axeAPI","nodes":[]},{"id":"aria-roles","impact":null,"tags":["cat.aria","wcag2a","wcag412"],"description":"Ensures all elements with a role attribute use a valid value","help":"ARIA roles used must conform to valid values","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/aria-roles?application=axeAPI","nodes":[]},{"id":"aria-text","impact":null,"tags":["cat.aria","best-practice"],"description":"Ensures \"role=text\" is used on elements with no focusable descendants","help":"\"role=text\" should have no focusable descendants","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/aria-text?application=axeAPI","nodes":[]},{"id":"aria-toggle-field-name","impact":null,"tags":["cat.aria","wcag2a","wcag412","ACT","TTv5","TT5.c"],"description":"Ensures every ARIA toggle field has an accessible name","help":"ARIA toggle fields must have an accessible name","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/aria-toggle-field-name?application=axeAPI","nodes":[]},{"id":"aria-tooltip-name","impact":null,"tags":["cat.aria","wcag2a","wcag412"],"description":"Ensures every ARIA tooltip node has an accessible name","help":"ARIA tooltip nodes must have an accessible name","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/aria-tooltip-name?application=axeAPI","nodes":[]},{"id":"aria-treeitem-name","impact":null,"tags":["cat.aria","best-practice"],"description":"Ensures every ARIA treeitem node has an accessible name","help":"ARIA treeitem nodes should have an accessible name","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/aria-treeitem-name?application=axeAPI","nodes":[]},{"id":"aria-valid-attr-value","impact":null,"tags":["cat.aria","wcag2a","wcag412"],"description":"Ensures all ARIA attributes have valid values","help":"ARIA attributes must conform to valid values","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/aria-valid-attr-value?application=axeAPI","nodes":[]},{"id":"aria-valid-attr","impact":null,"tags":["cat.aria","wcag2a","wcag412"],"description":"Ensures attributes that begin with aria- are valid ARIA attributes","help":"ARIA attributes must conform to valid names","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/aria-valid-attr?application=axeAPI","nodes":[]},{"id":"autocomplete-valid","impact":null,"tags":["cat.forms","wcag21aa","wcag135","ACT"],"description":"Ensure the autocomplete attribute is correct and suitable for the form field","help":"autocomplete attribute must be used correctly","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/autocomplete-valid?application=axeAPI","nodes":[]},{"id":"avoid-inline-spacing","impact":null,"tags":["cat.structure","wcag21aa","wcag1412","ACT"],"description":"Ensure that text spacing set through style attributes can be adjusted with custom stylesheets","help":"Inline text spacing must be adjustable with custom stylesheets","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/avoid-inline-spacing?application=axeAPI","nodes":[]},{"id":"blink","impact":null,"tags":["cat.time-and-media","wcag2a","wcag222","section508","section508.22.j","TTv5","TT2.b"],"description":"Ensures <blink> elements are not used","help":"<blink> elements are deprecated and must not be used","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/blink?application=axeAPI","nodes":[]},{"id":"button-name","impact":null,"tags":["cat.name-role-value","wcag2a","wcag412","section508","section508.22.a","ACT","TTv5","TT6.a"],"description":"Ensures buttons have discernible text","help":"Buttons must have discernible text","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/button-name?application=axeAPI","nodes":[]},{"id":"definition-list","impact":null,"tags":["cat.structure","wcag2a","wcag131"],"description":"Ensures <dl> elements are structured correctly","help":"<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/definition-list?application=axeAPI","nodes":[]},{"id":"dlitem","impact":null,"tags":["cat.structure","wcag2a","wcag131"],"description":"Ensures <dt> and <dd> elements are contained by a <dl>","help":"<dt> and <dd> elements must be contained by a <dl>","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/dlitem?application=axeAPI","nodes":[]},{"id":"duplicate-id-aria","impact":null,"tags":["cat.parsing","wcag2a","wcag411"],"description":"Ensures every id attribute value used in ARIA and in labels is unique","help":"IDs used in ARIA and labels must be unique","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/duplicate-id-aria?application=axeAPI","nodes":[]},{"id":"empty-table-header","impact":null,"tags":["cat.name-role-value","best-practice"],"description":"Ensures table headers have discernible text","help":"Table header text should not be empty","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/empty-table-header?application=axeAPI","nodes":[]},{"id":"form-field-multiple-labels","impact":null,"tags":["cat.forms","wcag2a","wcag332","TTv5","TT5.c"],"description":"Ensures form field does not have multiple label elements","help":"Form field must not have multiple label elements","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/form-field-multiple-labels?application=axeAPI","nodes":[]},{"id":"frame-focusable-content","impact":null,"tags":["cat.keyboard","wcag2a","wcag211","TTv5","TT4.a"],"description":"Ensures <frame> and <iframe> elements with focusable content do not have tabindex=-1","help":"Frames with focusable content must not have tabindex=-1","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/frame-focusable-content?application=axeAPI","nodes":[]},{"id":"frame-tested","impact":null,"tags":["cat.structure","review-item","best-practice"],"description":"Ensures <iframe> and <frame> elements contain the axe-core script","help":"Frames should be tested with axe-core","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/frame-tested?application=axeAPI","nodes":[]},{"id":"frame-title-unique","impact":null,"tags":["cat.text-alternatives","wcag412","wcag2a","TTv5","TT12.c"],"description":"Ensures <iframe> and <frame> elements contain a unique title attribute","help":"Frames must have a unique title attribute","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/frame-title-unique?application=axeAPI","nodes":[]},{"id":"frame-title","impact":null,"tags":["cat.text-alternatives","wcag2a","wcag412","section508","section508.22.i","TTv5","TT12.c"],"description":"Ensures <iframe> and <frame> elements have an accessible name","help":"Frames must have an accessible name","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/frame-title?application=axeAPI","nodes":[]},{"id":"html-xml-lang-mismatch","impact":null,"tags":["cat.language","wcag2a","wcag311","ACT"],"description":"Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page","help":"HTML elements with lang and xml:lang must have the same base language","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/html-xml-lang-mismatch?application=axeAPI","nodes":[]},{"id":"image-alt","impact":null,"tags":["cat.text-alternatives","wcag2a","wcag111","section508","section508.22.a","ACT","TTv5","TT7.a","TT7.b"],"description":"Ensures <img> elements have alternate text or a role of none or presentation","help":"Images must have alternate text","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/image-alt?application=axeAPI","nodes":[]},{"id":"image-redundant-alt","impact":null,"tags":["cat.text-alternatives","best-practice"],"description":"Ensure image alternative is not repeated as text","help":"Alternative text of images should not be repeated as text","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/image-redundant-alt?application=axeAPI","nodes":[]},{"id":"input-button-name","impact":null,"tags":["cat.name-role-value","wcag2a","wcag412","section508","section508.22.a","ACT","TTv5","TT5.c"],"description":"Ensures input buttons have discernible text","help":"Input buttons must have discernible text","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/input-button-name?application=axeAPI","nodes":[]},{"id":"input-image-alt","impact":null,"tags":["cat.text-alternatives","wcag2a","wcag111","wcag412","section508","section508.22.a","ACT","TTv5","TT7.a"],"description":"Ensures <input type=\"image\"> elements have alternate text","help":"Image buttons must have alternate text","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/input-image-alt?application=axeAPI","nodes":[]},{"id":"label-title-only","impact":null,"tags":["cat.forms","best-practice"],"description":"Ensures that every form element has a visible label and is not solely labeled using hidden labels, or the title or aria-describedby attributes","help":"Form elements should have a visible label","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/label-title-only?application=axeAPI","nodes":[]},{"id":"label","impact":null,"tags":["cat.forms","wcag2a","wcag412","section508","section508.22.n","ACT","TTv5","TT5.c"],"description":"Ensures every form element has a label","help":"Form elements must have labels","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/label?application=axeAPI","nodes":[]},{"id":"landmark-complementary-is-top-level","impact":null,"tags":["cat.semantics","best-practice"],"description":"Ensures the complementary landmark or aside is at top level","help":"Aside should not be contained in another landmark","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/landmark-complementary-is-top-level?application=axeAPI","nodes":[]},{"id":"landmark-main-is-top-level","impact":null,"tags":["cat.semantics","best-practice"],"description":"Ensures the main landmark is at top level","help":"Main landmark should not be contained in another landmark","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/landmark-main-is-top-level?application=axeAPI","nodes":[]},{"id":"landmark-no-duplicate-main","impact":null,"tags":["cat.semantics","best-practice"],"description":"Ensures the document has at most one main landmark","help":"Document should not have more than one main landmark","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/landmark-no-duplicate-main?application=axeAPI","nodes":[]},{"id":"link-in-text-block","impact":null,"tags":["cat.color","wcag2a","wcag141","TTv5","TT13.a"],"description":"Ensure links are distinguished from surrounding text in a way that does not rely on color","help":"Links must be distinguishable without relying on color","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/link-in-text-block?application=axeAPI","nodes":[]},{"id":"marquee","impact":null,"tags":["cat.parsing","wcag2a","wcag222","TTv5","TT2.b"],"description":"Ensures <marquee> elements are not used","help":"<marquee> elements are deprecated and must not be used","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/marquee?application=axeAPI","nodes":[]},{"id":"meta-refresh","impact":null,"tags":["cat.time-and-media","wcag2a","wcag221","TTv5","TT2.c"],"description":"Ensures <meta http-equiv=\"refresh\"> is not used for delayed refresh","help":"Delayed refresh under 20 hours must not be used","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/meta-refresh?application=axeAPI","nodes":[]},{"id":"object-alt","impact":null,"tags":["cat.text-alternatives","wcag2a","wcag111","section508","section508.22.a"],"description":"Ensures <object> elements have alternate text","help":"<object> elements must have alternate text","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/object-alt?application=axeAPI","nodes":[]},{"id":"presentation-role-conflict","impact":null,"tags":["cat.aria","best-practice","ACT"],"description":"Elements marked as presentational should not have global ARIA or tabindex to ensure all screen readers ignore them","help":"Ensure elements marked as presentational are consistently ignored","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/presentation-role-conflict?application=axeAPI","nodes":[]},{"id":"role-img-alt","impact":null,"tags":["cat.text-alternatives","wcag2a","wcag111","section508","section508.22.a","ACT","TTv5","TT7.a"],"description":"Ensures [role='img'] elements have alternate text","help":"[role='img'] elements must have an alternative text","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/role-img-alt?application=axeAPI","nodes":[]},{"id":"scope-attr-valid","impact":null,"tags":["cat.tables","best-practice"],"description":"Ensures the scope attribute is used correctly on tables","help":"scope attribute should be used correctly","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/scope-attr-valid?application=axeAPI","nodes":[]},{"id":"scrollable-region-focusable","impact":null,"tags":["cat.keyboard","wcag2a","wcag211"],"description":"Ensure elements that have scrollable content are accessible by keyboard","help":"Scrollable region must have keyboard access","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/scrollable-region-focusable?application=axeAPI","nodes":[]},{"id":"select-name","impact":null,"tags":["cat.forms","wcag2a","wcag412","section508","section508.22.n","ACT","TTv5","TT5.c"],"description":"Ensures select element has an accessible name","help":"Select element must have an accessible name","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/select-name?application=axeAPI","nodes":[]},{"id":"server-side-image-map","impact":null,"tags":["cat.text-alternatives","wcag2a","wcag211","section508","section508.22.f"],"description":"Ensures that server-side image maps are not used","help":"Server-side image maps must not be used","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/server-side-image-map?application=axeAPI","nodes":[]},{"id":"skip-link","impact":null,"tags":["cat.keyboard","best-practice"],"description":"Ensure all skip links have a focusable target","help":"The skip-link target should exist and be focusable","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/skip-link?application=axeAPI","nodes":[]},{"id":"svg-img-alt","impact":null,"tags":["cat.text-alternatives","wcag2a","wcag111","section508","section508.22.a","ACT","TTv5","TT7.a"],"description":"Ensures <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text","help":"<svg> elements with an img role must have an alternative text","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/svg-img-alt?application=axeAPI","nodes":[]},{"id":"tabindex","impact":null,"tags":["cat.keyboard","best-practice"],"description":"Ensures tabindex attribute values are not greater than 0","help":"Elements should not have tabindex greater than zero","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/tabindex?application=axeAPI","nodes":[]},{"id":"table-duplicate-name","impact":null,"tags":["cat.tables","best-practice"],"description":"Ensure the <caption> element does not contain the same text as the summary attribute","help":"tables should not have the same summary and caption","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/table-duplicate-name?application=axeAPI","nodes":[]},{"id":"td-headers-attr","impact":null,"tags":["cat.tables","wcag2a","wcag131","section508","section508.22.g"],"description":"Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table","help":"Table cells that use the headers attribute must only refer to cells in the same table","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/td-headers-attr?application=axeAPI","nodes":[]},{"id":"th-has-data-cells","impact":null,"tags":["cat.tables","wcag2a","wcag131","section508","section508.22.g","TTv5","14.b"],"description":"Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe","help":"Table headers in a data table must refer to data cells","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/th-has-data-cells?application=axeAPI","nodes":[]},{"id":"valid-lang","impact":null,"tags":["cat.language","wcag2aa","wcag312","ACT","TTv5","TT11.b"],"description":"Ensures lang attributes have valid values","help":"lang attribute must have a valid value","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/valid-lang?application=axeAPI","nodes":[]},{"id":"video-caption","impact":null,"tags":["cat.text-alternatives","wcag2a","wcag122","section508","section508.22.a","TTv5","TT17.a"],"description":"Ensures <video> elements have captions","help":"<video> elements must have captions","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/video-caption?application=axeAPI","nodes":[]},{"id":"no-autoplay-audio","impact":null,"tags":["cat.time-and-media","wcag2a","wcag142","ACT","TTv5","TT2.a"],"description":"Ensures <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio","help":"<video> or <audio> elements must not play automatically","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/no-autoplay-audio?application=axeAPI","nodes":[]}],"passes":[{"id":"aria-hidden-body","impact":null,"tags":["cat.aria","wcag2a","wcag412"],"description":"Ensures aria-hidden='true' is not present on the document body.","help":"aria-hidden='true' must not be present on the document body","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/aria-hidden-body?application=axeAPI","nodes":[{"any":[{"id":"aria-hidden-body","data":null,"relatedNodes":[],"impact":"critical","message":"No aria-hidden attribute is present on document body"}],"all":[],"none":[],"impact":null,"html":"<body>","target":["body"]}]},{"id":"bypass","impact":null,"tags":["cat.keyboard","wcag2a","wcag241","section508","section508.22.o","TTv5","TT9.a"],"description":"Ensures each page has at least one mechanism for a user to bypass navigation and jump straight to the content","help":"Page must have means to bypass repeated blocks","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/bypass?application=axeAPI","nodes":[{"any":[{"id":"internal-link-present","data":null,"relatedNodes":[],"impact":"serious","message":"Valid skip link found"},{"id":"header-present","data":null,"relatedNodes":[{"html":"<h1>CURA Healthcare Service</h1>","target":["h1"]},{"html":"<h3>We Care About Your Health</h3>","target":["h3"]},{"html":"<h4><strong>CURA Healthcare Service</strong>\n </h4>","target":["h4"]}],"impact":"serious","message":"Page has a heading"}],"all":[],"none":[],"impact":null,"html":"<html lang=\"en\">","target":["html"]}]},{"id":"color-contrast","impact":"serious","tags":["cat.color","wcag2aa","wcag143","ACT","TTv5","TT13.c"],"description":"Ensures the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds","help":"Elements must meet minimum color contrast ratio thresholds","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/color-contrast?application=axeAPI","nodes":[{"any":[{"id":"color-contrast","data":{"fgColor":"#ffffff","bgColor":"#666666","contrastRatio":5.74,"fontSize":"13.5pt (18px)","fontWeight":"normal","expectedContrastRatio":"4.5:1"},"relatedNodes":[],"impact":"serious","message":"Element has sufficient color contrast of 5.74"}],"all":[],"none":[],"impact":null,"html":"<a href=\"./\" onclick=\"$('#menu-close').click();\">CURA Healthcare</a>","target":[".sidebar-brand > a[href=\"./\"][onclick=\"$('#menu-close').click();\"]"]},{"any":[{"id":"color-contrast","data":{"fgColor":"#333333","bgColor":"#ffffff","contrastRatio":12.63,"fontSize":"13.5pt (18px)","fontWeight":"bold","expectedContrastRatio":"4.5:1"},"relatedNodes":[],"impact":"serious","message":"Element has sufficient color contrast of 12.63"}],"all":[],"none":[],"impact":null,"html":"<strong>CURA Healthcare Service</strong>","target":["strong"]},{"any":[{"id":"color-contrast","data":{"fgColor":"#333333","bgColor":"#ffffff","contrastRatio":12.63,"fontSize":"10.5pt (14px)","fontWeight":"normal","expectedContrastRatio":"4.5:1"},"relatedNodes":[],"impact":"serious","message":"Element has sufficient color contrast of 12.63"}],"all":[],"none":[],"impact":null,"html":"<p>Atlanta 550 Pharr Road NE Suite 525<br>Atlanta, GA 30305</p>","target":["p:nth-child(2)"]},{"any":[{"id":"color-contrast","data":{"fgColor":"#333333","bgColor":"#ffffff","contrastRatio":12.63,"fontSize":"10.5pt (14px)","fontWeight":"normal","expectedContrastRatio":"4.5:1"},"relatedNodes":[],"impact":"serious","message":"Element has sufficient color contrast of 12.63"}],"all":[],"none":[],"impact":null,"html":"<li><i class=\"fa fa-phone fa-fw\"></i> (678) 813-1KMS</li>","target":[".list-unstyled > li:nth-child(1)"]},{"any":[{"id":"color-contrast","data":{"fgColor":"#337ab7","bgColor":"#ffffff","contrastRatio":4.55,"fontSize":"10.5pt (14px)","fontWeight":"normal","expectedContrastRatio":"4.5:1"},"relatedNodes":[],"impact":"serious","message":"Element has sufficient color contrast of 4.55"}],"all":[],"none":[],"impact":null,"html":"<a href=\"mailto:info@katalon.com\">info@katalon.com</a>","target":["a[href$=\"mailto:info@katalon.com\"]"]}]},{"id":"document-title","impact":null,"tags":["cat.text-alternatives","wcag2a","wcag242","ACT","TTv5","TT12.a"],"description":"Ensures each HTML document contains a non-empty <title> element","help":"Documents must have <title> element to aid in navigation","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/document-title?application=axeAPI","nodes":[{"any":[{"id":"doc-has-title","data":null,"relatedNodes":[],"impact":"serious","message":"Document has a non-empty <title> element"}],"all":[],"none":[],"impact":null,"html":"<html lang=\"en\">","target":["html"]}]},{"id":"duplicate-id-active","impact":null,"tags":["cat.parsing","wcag2a","wcag411"],"description":"Ensures every id attribute value of active elements is unique","help":"IDs of active elements must be unique","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/duplicate-id-active?application=axeAPI","nodes":[{"any":[{"id":"duplicate-id-active","data":"menu-toggle","relatedNodes":[],"impact":"serious","message":"Document has no active elements that share the same id attribute"}],"all":[],"none":[],"impact":null,"html":"<a id=\"menu-toggle\" href=\"#\" class=\"btn btn-dark btn-lg toggle\"><i class=\"fa fa-bars\"></i></a>","target":["#menu-toggle"]},{"any":[{"id":"duplicate-id-active","data":"menu-close","relatedNodes":[],"impact":"serious","message":"Document has no active elements that share the same id attribute"}],"all":[],"none":[],"impact":null,"html":"<a id=\"menu-close\" href=\"#\" class=\"btn btn-light btn-lg pull-right toggle\"><i class=\"fa fa-times\"></i></a>","target":["#menu-close"]},{"any":[{"id":"duplicate-id-active","data":"btn-make-appointment","relatedNodes":[],"impact":"serious","message":"Document has no active elements that share the same id attribute"}],"all":[],"none":[],"impact":null,"html":"<a id=\"btn-make-appointment\" href=\"./profile.php#login\" class=\"btn btn-dark btn-lg\">Make Appointment</a>","target":["#btn-make-appointment"]}]},{"id":"duplicate-id","impact":null,"tags":["cat.parsing","wcag2a","wcag411"],"description":"Ensures every id attribute value is unique","help":"id attribute value must be unique","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/duplicate-id?application=axeAPI","nodes":[{"any":[{"id":"duplicate-id","data":"sidebar-wrapper","relatedNodes":[],"impact":"minor","message":"Document has no static elements that share the same id attribute"}],"all":[],"none":[],"impact":null,"html":"<nav id=\"sidebar-wrapper\">","target":["#sidebar-wrapper"]},{"any":[{"id":"duplicate-id","data":"top","relatedNodes":[],"impact":"minor","message":"Document has no static elements that share the same id attribute"}],"all":[],"none":[],"impact":null,"html":"<header id=\"top\" class=\"header\">","target":["#top"]},{"any":[{"id":"duplicate-id","data":"to-top","relatedNodes":[],"impact":"minor","message":"Document has no static elements that share the same id attribute"}],"all":[],"none":[],"impact":null,"html":"<a id=\"to-top\" href=\"#top\" class=\"btn btn-dark btn-lg\"><i class=\"fa fa-chevron-up fa-fw fa-1x\"></i></a>","target":["#to-top"]}]},{"id":"empty-heading","impact":null,"tags":["cat.name-role-value","best-practice"],"description":"Ensures headings have discernible text","help":"Headings should not be empty","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/empty-heading?application=axeAPI","nodes":[{"any":[{"id":"has-visible-text","data":null,"relatedNodes":[],"impact":"minor","message":"Element has text that is visible to screen readers"}],"all":[],"none":[],"impact":null,"html":"<h1>CURA Healthcare Service</h1>","target":["h1"]},{"any":[{"id":"has-visible-text","data":null,"relatedNodes":[],"impact":"minor","message":"Element has text that is visible to screen readers"}],"all":[],"none":[],"impact":null,"html":"<h3>We Care About Your Health</h3>","target":["h3"]},{"any":[{"id":"has-visible-text","data":null,"relatedNodes":[],"impact":"minor","message":"Element has text that is visible to screen readers"}],"all":[],"none":[],"impact":null,"html":"<h4><strong>CURA Healthcare Service</strong>\n </h4>","target":["h4"]}]},{"id":"heading-order","impact":"moderate","tags":["cat.semantics","best-practice"],"description":"Ensures the order of headings is semantically correct","help":"Heading levels should only increase by one","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/heading-order?application=axeAPI","nodes":[{"any":[{"id":"heading-order","data":{"headingOrder":[{"ancestry":["html > body > header:nth-child(3) > div > h1:nth-child(1)"],"level":1},{"ancestry":["html > body > header:nth-child(3) > div > h3:nth-child(2)"],"level":3},{"ancestry":["html > body > footer:nth-child(4) > div:nth-child(1) > div > div > h4:nth-child(1)"],"level":4}]},"relatedNodes":[],"impact":"moderate","message":"Heading order valid"}],"all":[],"none":[],"impact":null,"html":"<h1>CURA Healthcare Service</h1>","target":["h1"]},{"any":[{"id":"heading-order","data":null,"relatedNodes":[],"impact":"moderate","message":"Heading order valid"}],"all":[],"none":[],"impact":null,"html":"<h4><strong>CURA Healthcare Service</strong>\n </h4>","target":["h4"]}]},{"id":"html-has-lang","impact":null,"tags":["cat.language","wcag2a","wcag311","ACT","TTv5","TT11.a"],"description":"Ensures every HTML document has a lang attribute","help":"<html> element must have a lang attribute","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/html-has-lang?application=axeAPI","nodes":[{"any":[{"id":"has-lang","data":null,"relatedNodes":[],"impact":"serious","message":"The <html> element has a lang attribute"}],"all":[],"none":[],"impact":null,"html":"<html lang=\"en\">","target":["html"]}]},{"id":"html-lang-valid","impact":null,"tags":["cat.language","wcag2a","wcag311","ACT","TTv5","TT11.a"],"description":"Ensures the lang attribute of the <html> element has a valid value","help":"<html> element must have a valid value for the lang attribute","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/html-lang-valid?application=axeAPI","nodes":[{"any":[],"all":[],"none":[{"id":"valid-lang","data":null,"relatedNodes":[],"impact":"serious","message":"Value of lang attribute is included in the list of valid languages"}],"impact":null,"html":"<html lang=\"en\">","target":["html"]}]},{"id":"landmark-banner-is-top-level","impact":null,"tags":["cat.semantics","best-practice"],"description":"Ensures the banner landmark is at top level","help":"Banner landmark should not be contained in another landmark","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/landmark-banner-is-top-level?application=axeAPI","nodes":[{"any":[{"id":"landmark-is-top-level","data":{"role":"banner"},"relatedNodes":[],"impact":"moderate","message":"The banner landmark is at the top level."}],"all":[],"none":[],"impact":null,"html":"<header id=\"top\" class=\"header\">","target":["#top"]}]},{"id":"landmark-contentinfo-is-top-level","impact":null,"tags":["cat.semantics","best-practice"],"description":"Ensures the contentinfo landmark is at top level","help":"Contentinfo landmark should not be contained in another landmark","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/landmark-contentinfo-is-top-level?application=axeAPI","nodes":[{"any":[{"id":"landmark-is-top-level","data":{"role":"contentinfo"},"relatedNodes":[],"impact":"moderate","message":"The contentinfo landmark is at the top level."}],"all":[],"none":[],"impact":null,"html":"<footer>","target":["footer"]}]},{"id":"landmark-no-duplicate-banner","impact":null,"tags":["cat.semantics","best-practice"],"description":"Ensures the document has at most one banner landmark","help":"Document should not have more than one banner landmark","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/landmark-no-duplicate-banner?application=axeAPI","nodes":[{"any":[{"id":"page-no-duplicate-banner","data":null,"relatedNodes":[],"impact":"moderate","message":"Document does not have more than one banner landmark"}],"all":[],"none":[],"impact":null,"html":"<header id=\"top\" class=\"header\">","target":["#top"]}]},{"id":"landmark-no-duplicate-contentinfo","impact":null,"tags":["cat.semantics","best-practice"],"description":"Ensures the document has at most one contentinfo landmark","help":"Document should not have more than one contentinfo landmark","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/landmark-no-duplicate-contentinfo?application=axeAPI","nodes":[{"any":[{"id":"page-no-duplicate-contentinfo","data":null,"relatedNodes":[],"impact":"moderate","message":"Document does not have more than one contentinfo landmark"}],"all":[],"none":[],"impact":null,"html":"<footer>","target":["footer"]}]},{"id":"landmark-unique","impact":null,"tags":["cat.semantics","best-practice"],"help":"Ensures landmarks are unique","description":"Landmarks should have a unique role or role/label/title (i.e. accessible name) combination","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/landmark-unique?application=axeAPI","nodes":[{"any":[{"id":"landmark-is-unique","data":{"role":"navigation","accessibleText":null},"relatedNodes":[],"impact":"moderate","message":"Landmarks must have a unique role or role/label/title (i.e. accessible name) combination"}],"all":[],"none":[],"impact":null,"html":"<nav id=\"sidebar-wrapper\">","target":["#sidebar-wrapper"]},{"any":[{"id":"landmark-is-unique","data":{"role":"banner","accessibleText":null},"relatedNodes":[],"impact":"moderate","message":"Landmarks must have a unique role or role/label/title (i.e. accessible name) combination"}],"all":[],"none":[],"impact":null,"html":"<header id=\"top\" class=\"header\">","target":["#top"]},{"any":[{"id":"landmark-is-unique","data":{"role":"contentinfo","accessibleText":null},"relatedNodes":[],"impact":"moderate","message":"Landmarks must have a unique role or role/label/title (i.e. accessible name) combination"}],"all":[],"none":[],"impact":null,"html":"<footer>","target":["footer"]}]},{"id":"link-name","impact":"serious","tags":["cat.name-role-value","wcag2a","wcag412","wcag244","section508","section508.22.a","ACT","TTv5","TT6.a"],"description":"Ensures links have discernible text","help":"Links must have discernible text","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/link-name?application=axeAPI","nodes":[{"any":[{"id":"has-visible-text","data":null,"relatedNodes":[],"impact":"minor","message":"Element has text that is visible to screen readers"}],"all":[],"none":[{"id":"focusable-no-name","data":null,"relatedNodes":[],"impact":"serious","message":"Element is not in tab order or has accessible text"}],"impact":null,"html":"<a href=\"./\" onclick=\"$('#menu-close').click();\">CURA Healthcare</a>","target":[".sidebar-brand > a[href=\"./\"][onclick=\"$('#menu-close').click();\"]"]},{"any":[{"id":"has-visible-text","data":null,"relatedNodes":[],"impact":"minor","message":"Element has text that is visible to screen readers"}],"all":[],"none":[{"id":"focusable-no-name","data":null,"relatedNodes":[],"impact":"serious","message":"Element is not in tab order or has accessible text"}],"impact":null,"html":"<a href=\"./\" onclick=\"$('#menu-close').click();\">Home</a>","target":["li:nth-child(3) > a[href=\"./\"][onclick=\"$('#menu-close').click();\"]"]},{"any":[{"id":"has-visible-text","data":null,"relatedNodes":[],"impact":"minor","message":"Element has text that is visible to screen readers"}],"all":[],"none":[{"id":"focusable-no-name","data":null,"relatedNodes":[],"impact":"serious","message":"Element is not in tab order or has accessible text"}],"impact":null,"html":"<a href=\"profile.php#login\" onclick=\"$('#menu-close').click();\">Login</a>","target":["a[href$=\"profile.php#login\"][onclick=\"$('#menu-close').click();\"]"]},{"any":[{"id":"has-visible-text","data":null,"relatedNodes":[],"impact":"minor","message":"Element has text that is visible to screen readers"}],"all":[],"none":[{"id":"focusable-no-name","data":null,"relatedNodes":[],"impact":"serious","message":"Element is not in tab order or has accessible text"}],"impact":null,"html":"<a id=\"btn-make-appointment\" href=\"./profile.php#login\" class=\"btn btn-dark btn-lg\">Make Appointment</a>","target":["#btn-make-appointment"]},{"any":[{"id":"has-visible-text","data":null,"relatedNodes":[],"impact":"minor","message":"Element has text that is visible to screen readers"}],"all":[],"none":[{"id":"focusable-no-name","data":null,"relatedNodes":[],"impact":"serious","message":"Element is not in tab order or has accessible text"}],"impact":null,"html":"<a href=\"mailto:info@katalon.com\">info@katalon.com</a>","target":["a[href$=\"mailto:info@katalon.com\"]"]}]},{"id":"list","impact":"serious","tags":["cat.structure","wcag2a","wcag131"],"description":"Ensures that lists are structured correctly","help":"<ul> and <ol> must only directly contain <li>, <script> or <template> elements","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/list?application=axeAPI","nodes":[{"any":[],"all":[],"none":[{"id":"only-listitems","data":null,"relatedNodes":[],"impact":"serious","message":"List element only has direct children that are allowed inside <li> elements"}],"impact":null,"html":"<ul class=\"list-unstyled\">\n <li><i class=\"fa fa-phone fa-fw\"></i> (678) 813-1KMS</li>\n <li><i class=\"fa fa-envelope-o fa-fw\"></i> <a href=\"mailto:info@katalon.com\">info@katalon.com</a>\n </li>\n </ul>","target":[".list-unstyled"]},{"any":[],"all":[],"none":[{"id":"only-listitems","data":null,"relatedNodes":[],"impact":"serious","message":"List element only has direct children that are allowed inside <li> elements"}],"impact":null,"html":"<ul class=\"list-inline\">","target":[".list-inline"]}]},{"id":"listitem","impact":null,"tags":["cat.structure","wcag2a","wcag131"],"description":"Ensures <li> elements are used semantically","help":"<li> elements must be contained in a <ul> or <ol>","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/listitem?application=axeAPI","nodes":[{"any":[{"id":"listitem","data":null,"relatedNodes":[],"impact":"serious","message":"List item has a <ul>, <ol> or role=\"list\" parent element"}],"all":[],"none":[],"impact":null,"html":"<li class=\"sidebar-brand\">\n <a href=\"./\" onclick=\"$('#menu-close').click();\">CURA Healthcare</a>\n </li>","target":[".sidebar-brand"]},{"any":[{"id":"listitem","data":null,"relatedNodes":[],"impact":"serious","message":"List item has a <ul>, <ol> or role=\"list\" parent element"}],"all":[],"none":[],"impact":null,"html":"<li>\n <a href=\"./\" onclick=\"$('#menu-close').click();\">Home</a>\n </li>","target":[".sidebar-nav > li:nth-child(3)"]},{"any":[{"id":"listitem","data":null,"relatedNodes":[],"impact":"serious","message":"List item has a <ul>, <ol> or role=\"list\" parent element"}],"all":[],"none":[],"impact":null,"html":"<li>\n <a href=\"profile.php#login\" onclick=\"$('#menu-close').click();\">Login</a>\n </li>","target":["li:nth-child(4)"]},{"any":[{"id":"listitem","data":null,"relatedNodes":[],"impact":"serious","message":"List item has a <ul>, <ol> or role=\"list\" parent element"}],"all":[],"none":[],"impact":null,"html":"<li><i class=\"fa fa-phone fa-fw\"></i> (678) 813-1KMS</li>","target":[".list-unstyled > li:nth-child(1)"]},{"any":[{"id":"listitem","data":null,"relatedNodes":[],"impact":"serious","message":"List item has a <ul>, <ol> or role=\"list\" parent element"}],"all":[],"none":[],"impact":null,"html":"<li><i class=\"fa fa-envelope-o fa-fw\"></i> <a href=\"mailto:info@katalon.com\">info@katalon.com</a>\n </li>","target":[".list-unstyled > li:nth-child(2)"]},{"any":[{"id":"listitem","data":null,"relatedNodes":[],"impact":"serious","message":"List item has a <ul>, <ol> or role=\"list\" parent element"}],"all":[],"none":[],"impact":null,"html":"<li>\n <a href=\"#\"><i class=\"fa fa-facebook fa-fw fa-3x\"></i></a>\n </li>","target":[".list-inline > li:nth-child(1)"]},{"any":[{"id":"listitem","data":null,"relatedNodes":[],"impact":"serious","message":"List item has a <ul>, <ol> or role=\"list\" parent element"}],"all":[],"none":[],"impact":null,"html":"<li>\n <a href=\"#\"><i class=\"fa fa-twitter fa-fw fa-3x\"></i></a>\n </li>","target":[".list-inline > li:nth-child(2)"]},{"any":[{"id":"listitem","data":null,"relatedNodes":[],"impact":"serious","message":"List item has a <ul>, <ol> or role=\"list\" parent element"}],"all":[],"none":[],"impact":null,"html":"<li>\n <a href=\"#\"><i class=\"fa fa-dribbble fa-fw fa-3x\"></i></a>\n </li>","target":[".list-inline > li:nth-child(3)"]}]},{"id":"meta-viewport-large","impact":null,"tags":["cat.sensory-and-visual-cues","best-practice"],"description":"Ensures <meta name=\"viewport\"> can scale a significant amount","help":"Users should be able to zoom and scale the text up to 500%","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/meta-viewport-large?application=axeAPI","nodes":[{"any":[{"id":"meta-viewport-large","data":null,"relatedNodes":[],"impact":"minor","message":"<meta> tag does not prevent significant zooming on mobile devices"}],"all":[],"none":[],"impact":null,"html":"<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">","target":["meta[name=\"viewport\"]"]}]},{"id":"meta-viewport","impact":null,"tags":["cat.sensory-and-visual-cues","wcag2aa","wcag144","ACT"],"description":"Ensures <meta name=\"viewport\"> does not disable text scaling and zooming","help":"Zooming and scaling must not be disabled","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/meta-viewport?application=axeAPI","nodes":[{"any":[{"id":"meta-viewport","data":null,"relatedNodes":[],"impact":"critical","message":"<meta> tag does not disable zooming on mobile devices"}],"all":[],"none":[],"impact":null,"html":"<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">","target":["meta[name=\"viewport\"]"]}]},{"id":"nested-interactive","impact":null,"tags":["cat.keyboard","wcag2a","wcag412","TTv5","TT4.a"],"description":"Ensures interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies","help":"Interactive controls must not be nested","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/nested-interactive?application=axeAPI","nodes":[{"any":[{"id":"no-focusable-content","data":null,"relatedNodes":[],"impact":"serious","message":"Element does not have focusable descendants"}],"all":[],"none":[],"impact":null,"html":"<hr class=\"small\">","target":["hr"]}]},{"id":"page-has-heading-one","impact":null,"tags":["cat.semantics","best-practice"],"description":"Ensure that the page, or at least one of its frames contains a level-one heading","help":"Page should contain a level-one heading","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/page-has-heading-one?application=axeAPI","nodes":[{"any":[],"all":[{"id":"page-has-heading-one","data":null,"relatedNodes":[{"html":"<h1>CURA Healthcare Service</h1>","target":["h1"]}],"impact":"moderate","message":"Page has at least one level-one heading"}],"none":[],"impact":null,"html":"<html lang=\"en\">","target":["html"]}]},{"id":"region","impact":null,"tags":["cat.keyboard","best-practice"],"description":"Ensures all page content is contained by landmarks","help":"All page content should be contained by landmarks","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/region?application=axeAPI","nodes":[{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<a id=\"menu-toggle\" href=\"#\" class=\"btn btn-dark btn-lg toggle\"><i class=\"fa fa-bars\"></i></a>","target":["#menu-toggle"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<i class=\"fa fa-bars\"></i>","target":[".fa-bars"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<nav id=\"sidebar-wrapper\">","target":["#sidebar-wrapper"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<ul class=\"sidebar-nav\">","target":[".sidebar-nav"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<a id=\"menu-close\" href=\"#\" class=\"btn btn-light btn-lg pull-right toggle\"><i class=\"fa fa-times\"></i></a>","target":["#menu-close"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<i class=\"fa fa-times\"></i>","target":[".fa-times"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<li class=\"sidebar-brand\">\n <a href=\"./\" onclick=\"$('#menu-close').click();\">CURA Healthcare</a>\n </li>","target":[".sidebar-brand"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<a href=\"./\" onclick=\"$('#menu-close').click();\">CURA Healthcare</a>","target":[".sidebar-brand > a[href=\"./\"][onclick=\"$('#menu-close').click();\"]"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<li>\n <a href=\"./\" onclick=\"$('#menu-close').click();\">Home</a>\n </li>","target":[".sidebar-nav > li:nth-child(3)"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<a href=\"./\" onclick=\"$('#menu-close').click();\">Home</a>","target":["li:nth-child(3) > a[href=\"./\"][onclick=\"$('#menu-close').click();\"]"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<li>\n <a href=\"profile.php#login\" onclick=\"$('#menu-close').click();\">Login</a>\n </li>","target":["li:nth-child(4)"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<a href=\"profile.php#login\" onclick=\"$('#menu-close').click();\">Login</a>","target":["a[href$=\"profile.php#login\"][onclick=\"$('#menu-close').click();\"]"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<header id=\"top\" class=\"header\">","target":["#top"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<div class=\"text-vertical-center\">\n <h1>CURA Healthcare Service</h1>\n <h3>We Care About Your Health</h3>\n <br>\n <a id=\"btn-make-appointment\" href=\"./profile.php#login\" class=\"btn btn-dark btn-lg\">Make Appointment</a>\n </div>","target":[".text-vertical-center"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<h1>CURA Healthcare Service</h1>","target":["h1"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<h3>We Care About Your Health</h3>","target":["h3"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<br>","target":[".text-vertical-center > br"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<a id=\"btn-make-appointment\" href=\"./profile.php#login\" class=\"btn btn-dark btn-lg\">Make Appointment</a>","target":["#btn-make-appointment"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<footer>","target":["footer"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<div class=\"container\">","target":[".container"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<div class=\"row\">","target":[".row"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<div class=\"col-lg-10 col-lg-offset-1 text-center\">","target":[".col-lg-10"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<h4><strong>CURA Healthcare Service</strong>\n </h4>","target":["h4"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<strong>CURA Healthcare Service</strong>","target":["strong"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<p>Atlanta 550 Pharr Road NE Suite 525<br>Atlanta, GA 30305</p>","target":["p:nth-child(2)"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<br>","target":["p:nth-child(2) > br"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<ul class=\"list-unstyled\">\n <li><i class=\"fa fa-phone fa-fw\"></i> (678) 813-1KMS</li>\n <li><i class=\"fa fa-envelope-o fa-fw\"></i> <a href=\"mailto:info@katalon.com\">info@katalon.com</a>\n </li>\n </ul>","target":[".list-unstyled"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<li><i class=\"fa fa-phone fa-fw\"></i> (678) 813-1KMS</li>","target":[".list-unstyled > li:nth-child(1)"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<i class=\"fa fa-phone fa-fw\"></i>","target":[".fa-phone"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<li><i class=\"fa fa-envelope-o fa-fw\"></i> <a href=\"mailto:info@katalon.com\">info@katalon.com</a>\n </li>","target":[".list-unstyled > li:nth-child(2)"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<i class=\"fa fa-envelope-o fa-fw\"></i>","target":[".fa-envelope-o"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<a href=\"mailto:info@katalon.com\">info@katalon.com</a>","target":["a[href$=\"mailto:info@katalon.com\"]"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<br>","target":[".col-lg-10 > br"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<ul class=\"list-inline\">","target":[".list-inline"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<li>\n <a href=\"#\"><i class=\"fa fa-facebook fa-fw fa-3x\"></i></a>\n </li>","target":[".list-inline > li:nth-child(1)"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<a href=\"#\"><i class=\"fa fa-facebook fa-fw fa-3x\"></i></a>","target":["li:nth-child(1) > a[href=\"#\"]"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<i class=\"fa fa-facebook fa-fw fa-3x\"></i>","target":[".fa-facebook"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<li>\n <a href=\"#\"><i class=\"fa fa-twitter fa-fw fa-3x\"></i></a>\n </li>","target":[".list-inline > li:nth-child(2)"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<a href=\"#\"><i class=\"fa fa-twitter fa-fw fa-3x\"></i></a>","target":["li:nth-child(2) > a[href=\"#\"]"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<i class=\"fa fa-twitter fa-fw fa-3x\"></i>","target":[".fa-twitter"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<li>\n <a href=\"#\"><i class=\"fa fa-dribbble fa-fw fa-3x\"></i></a>\n </li>","target":[".list-inline > li:nth-child(3)"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<a href=\"#\"><i class=\"fa fa-dribbble fa-fw fa-3x\"></i></a>","target":["li:nth-child(3) > a[href=\"#\"]"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<i class=\"fa fa-dribbble fa-fw fa-3x\"></i>","target":[".fa-dribbble"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<hr class=\"small\">","target":["hr"]},{"any":[{"id":"region","data":{"isIframe":false},"relatedNodes":[],"impact":"moderate","message":"All page content is contained by landmarks"}],"all":[],"none":[],"impact":null,"html":"<p class=\"text-muted\">Copyright © CURA Healthcare Service 2025</p>","target":[".text-muted"]}]}],"incomplete":[{"id":"color-contrast","impact":"serious","tags":["cat.color","wcag2aa","wcag143","ACT","TTv5","TT13.c"],"description":"Ensures the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds","help":"Elements must meet minimum color contrast ratio thresholds","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/color-contrast?application=axeAPI","nodes":[{"any":[{"id":"color-contrast","data":{"contrastRatio":0,"fontSize":"47.3pt (63px)","fontWeight":"normal","messageKey":"bgImage","expectedContrastRatio":"3:1"},"relatedNodes":[{"html":"<header id=\"top\" class=\"header\">","target":["#top"]}],"impact":"serious","message":"Element's background color could not be determined due to a background image"}],"all":[],"none":[],"impact":"serious","html":"<h1>CURA Healthcare Service</h1>","target":["h1"],"failureSummary":"Fix any of the following:\n Element's background color could not be determined due to a background image"},{"any":[{"id":"color-contrast","data":{"contrastRatio":0,"fontSize":"18.0pt (24px)","fontWeight":"normal","messageKey":"bgImage","expectedContrastRatio":"3:1"},"relatedNodes":[{"html":"<header id=\"top\" class=\"header\">","target":["#top"]}],"impact":"serious","message":"Element's background color could not be determined due to a background image"}],"all":[],"none":[],"impact":"serious","html":"<h3>We Care About Your Health</h3>","target":["h3"],"failureSummary":"Fix any of the following:\n Element's background color could not be determined due to a background image"},{"any":[{"id":"color-contrast","data":{"contrastRatio":0,"fontSize":"13.5pt (18px)","fontWeight":"normal","messageKey":"bgImage","expectedContrastRatio":"4.5:1"},"relatedNodes":[{"html":"<a id=\"btn-make-appointment\" href=\"./profile.php#login\" class=\"btn btn-dark btn-lg\">Make Appointment</a>","target":["#btn-make-appointment"]},{"html":"<header id=\"top\" class=\"header\">","target":["#top"]}],"impact":"serious","message":"Element's background color could not be determined due to a background image"}],"all":[],"none":[],"impact":"serious","html":"<a id=\"btn-make-appointment\" href=\"./profile.php#login\" class=\"btn btn-dark btn-lg\">Make Appointment</a>","target":["#btn-make-appointment"],"failureSummary":"Fix any of the following:\n Element's background color could not be determined due to a background image"}]}],"violations":[{"id":"color-contrast","impact":"serious","tags":["cat.color","wcag2aa","wcag143","ACT","TTv5","TT13.c"],"description":"Ensures the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds","help":"Elements must meet minimum color contrast ratio thresholds","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/color-contrast?application=axeAPI","nodes":[{"any":[{"id":"color-contrast","data":{"fgColor":"#cccccc","bgColor":"#666666","contrastRatio":3.57,"fontSize":"10.5pt (14px)","fontWeight":"normal","messageKey":null,"expectedContrastRatio":"4.5:1"},"relatedNodes":[{"html":"<nav id=\"sidebar-wrapper\">","target":["#sidebar-wrapper"]}],"impact":"serious","message":"Element has insufficient color contrast of 3.57 (foreground color: #cccccc, background color: #666666, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"}],"all":[],"none":[],"impact":"serious","html":"<a href=\"./\" onclick=\"$('#menu-close').click();\">Home</a>","target":["li:nth-child(3) > a[href=\"./\"][onclick=\"$('#menu-close').click();\"]"],"failureSummary":"Fix any of the following:\n Element has insufficient color contrast of 3.57 (foreground color: #cccccc, background color: #666666, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"},{"any":[{"id":"color-contrast","data":{"fgColor":"#cccccc","bgColor":"#666666","contrastRatio":3.57,"fontSize":"10.5pt (14px)","fontWeight":"normal","messageKey":null,"expectedContrastRatio":"4.5:1"},"relatedNodes":[{"html":"<nav id=\"sidebar-wrapper\">","target":["#sidebar-wrapper"]}],"impact":"serious","message":"Element has insufficient color contrast of 3.57 (foreground color: #cccccc, background color: #666666, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"}],"all":[],"none":[],"impact":"serious","html":"<a href=\"profile.php#login\" onclick=\"$('#menu-close').click();\">Login</a>","target":["a[href$=\"profile.php#login\"][onclick=\"$('#menu-close').click();\"]"],"failureSummary":"Fix any of the following:\n Element has insufficient color contrast of 3.57 (foreground color: #cccccc, background color: #666666, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"},{"any":[{"id":"color-contrast","data":{"fgColor":"#777777","bgColor":"#ffffff","contrastRatio":4.47,"fontSize":"10.5pt (14px)","fontWeight":"normal","messageKey":null,"expectedContrastRatio":"4.5:1"},"relatedNodes":[],"impact":"serious","message":"Element has insufficient color contrast of 4.47 (foreground color: #777777, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"}],"all":[],"none":[],"impact":"serious","html":"<p class=\"text-muted\">Copyright © CURA Healthcare Service 2025</p>","target":[".text-muted"],"failureSummary":"Fix any of the following:\n Element has insufficient color contrast of 4.47 (foreground color: #777777, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"}]},{"id":"heading-order","impact":"moderate","tags":["cat.semantics","best-practice"],"description":"Ensures the order of headings is semantically correct","help":"Heading levels should only increase by one","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/heading-order?application=axeAPI","nodes":[{"any":[{"id":"heading-order","data":null,"relatedNodes":[],"impact":"moderate","message":"Heading order invalid"}],"all":[],"none":[],"impact":"moderate","html":"<h3>We Care About Your Health</h3>","target":["h3"],"failureSummary":"Fix any of the following:\n Heading order invalid"}]},{"id":"landmark-one-main","impact":"moderate","tags":["cat.semantics","best-practice"],"description":"Ensures the document has a main landmark","help":"Document should have one main landmark","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/landmark-one-main?application=axeAPI","nodes":[{"any":[],"all":[{"id":"page-has-main","data":null,"relatedNodes":[],"impact":"moderate","message":"Document does not have a main landmark"}],"none":[],"impact":"moderate","html":"<html lang=\"en\">","target":["html"],"failureSummary":"Fix all of the following:\n Document does not have a main landmark"}]},{"id":"link-name","impact":"serious","tags":["cat.name-role-value","wcag2a","wcag412","wcag244","section508","section508.22.a","ACT","TTv5","TT6.a"],"description":"Ensures links have discernible text","help":"Links must have discernible text","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/link-name?application=axeAPI","nodes":[{"any":[{"id":"has-visible-text","data":null,"relatedNodes":[],"impact":"minor","message":"Element does not have text that is visible to screen readers"},{"id":"aria-label","data":null,"relatedNodes":[],"impact":"serious","message":"aria-label attribute does not exist or is empty"},{"id":"aria-labelledby","data":null,"relatedNodes":[],"impact":"serious","message":"aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"},{"id":"non-empty-title","data":{"messageKey":"noAttr"},"relatedNodes":[],"impact":"serious","message":"Element has no title attribute"}],"all":[],"none":[{"id":"focusable-no-name","data":null,"relatedNodes":[],"impact":"serious","message":"Element is in tab order and does not have accessible text"}],"impact":"serious","html":"<a id=\"menu-toggle\" href=\"#\" class=\"btn btn-dark btn-lg toggle\"><i class=\"fa fa-bars\"></i></a>","target":["#menu-toggle"],"failureSummary":"Fix all of the following:\n Element is in tab order and does not have accessible text\n\nFix any of the following:\n Element does not have text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute"},{"any":[{"id":"has-visible-text","data":null,"relatedNodes":[],"impact":"minor","message":"Element does not have text that is visible to screen readers"},{"id":"aria-label","data":null,"relatedNodes":[],"impact":"serious","message":"aria-label attribute does not exist or is empty"},{"id":"aria-labelledby","data":null,"relatedNodes":[],"impact":"serious","message":"aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"},{"id":"non-empty-title","data":{"messageKey":"noAttr"},"relatedNodes":[],"impact":"serious","message":"Element has no title attribute"}],"all":[],"none":[{"id":"focusable-no-name","data":null,"relatedNodes":[],"impact":"serious","message":"Element is in tab order and does not have accessible text"}],"impact":"serious","html":"<a id=\"menu-close\" href=\"#\" class=\"btn btn-light btn-lg pull-right toggle\"><i class=\"fa fa-times\"></i></a>","target":["#menu-close"],"failureSummary":"Fix all of the following:\n Element is in tab order and does not have accessible text\n\nFix any of the following:\n Element does not have text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute"},{"any":[{"id":"has-visible-text","data":null,"relatedNodes":[],"impact":"minor","message":"Element does not have text that is visible to screen readers"},{"id":"aria-label","data":null,"relatedNodes":[],"impact":"serious","message":"aria-label attribute does not exist or is empty"},{"id":"aria-labelledby","data":null,"relatedNodes":[],"impact":"serious","message":"aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"},{"id":"non-empty-title","data":{"messageKey":"noAttr"},"relatedNodes":[],"impact":"serious","message":"Element has no title attribute"}],"all":[],"none":[{"id":"focusable-no-name","data":null,"relatedNodes":[],"impact":"serious","message":"Element is in tab order and does not have accessible text"}],"impact":"serious","html":"<a href=\"#\"><i class=\"fa fa-facebook fa-fw fa-3x\"></i></a>","target":["li:nth-child(1) > a[href=\"#\"]"],"failureSummary":"Fix all of the following:\n Element is in tab order and does not have accessible text\n\nFix any of the following:\n Element does not have text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute"},{"any":[{"id":"has-visible-text","data":null,"relatedNodes":[],"impact":"minor","message":"Element does not have text that is visible to screen readers"},{"id":"aria-label","data":null,"relatedNodes":[],"impact":"serious","message":"aria-label attribute does not exist or is empty"},{"id":"aria-labelledby","data":null,"relatedNodes":[],"impact":"serious","message":"aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"},{"id":"non-empty-title","data":{"messageKey":"noAttr"},"relatedNodes":[],"impact":"serious","message":"Element has no title attribute"}],"all":[],"none":[{"id":"focusable-no-name","data":null,"relatedNodes":[],"impact":"serious","message":"Element is in tab order and does not have accessible text"}],"impact":"serious","html":"<a href=\"#\"><i class=\"fa fa-twitter fa-fw fa-3x\"></i></a>","target":["li:nth-child(2) > a[href=\"#\"]"],"failureSummary":"Fix all of the following:\n Element is in tab order and does not have accessible text\n\nFix any of the following:\n Element does not have text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute"},{"any":[{"id":"has-visible-text","data":null,"relatedNodes":[],"impact":"minor","message":"Element does not have text that is visible to screen readers"},{"id":"aria-label","data":null,"relatedNodes":[],"impact":"serious","message":"aria-label attribute does not exist or is empty"},{"id":"aria-labelledby","data":null,"relatedNodes":[],"impact":"serious","message":"aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"},{"id":"non-empty-title","data":{"messageKey":"noAttr"},"relatedNodes":[],"impact":"serious","message":"Element has no title attribute"}],"all":[],"none":[{"id":"focusable-no-name","data":null,"relatedNodes":[],"impact":"serious","message":"Element is in tab order and does not have accessible text"}],"impact":"serious","html":"<a href=\"#\"><i class=\"fa fa-dribbble fa-fw fa-3x\"></i></a>","target":["li:nth-child(3) > a[href=\"#\"]"],"failureSummary":"Fix all of the following:\n Element is in tab order and does not have accessible text\n\nFix any of the following:\n Element does not have text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute"}]},{"id":"list","impact":"serious","tags":["cat.structure","wcag2a","wcag131"],"description":"Ensures that lists are structured correctly","help":"<ul> and <ol> must only directly contain <li>, <script> or <template> elements","helpUrl":"https://dequeuniversity.com/rules/axe/4.7/list?application=axeAPI","nodes":[{"any":[],"all":[],"none":[{"id":"only-listitems","data":{"values":"a"},"relatedNodes":[{"html":"<a id=\"menu-close\" href=\"#\" class=\"btn btn-light btn-lg pull-right toggle\"><i class=\"fa fa-times\"></i></a>","target":["#menu-close"]}],"impact":"serious","message":"List element has direct children that are not allowed: a"}],"impact":"serious","html":"<ul class=\"sidebar-nav\">","target":[".sidebar-nav"],"failureSummary":"Fix all of the following:\n List element has direct children that are not allowed: a"}]}]}
2025-12-21 11:23:06.799 DEBUG testcase.Axe_by_yann.sautreuil - 7: parsed = JsonSlurper().parseText(resultsJson)
2025-12-21 11:23:06.866 DEBUG testcase.Axe_by_yann.sautreuil - 8: if (violations)
2025-12-21 11:23:06.911 DEBUG testcase.Axe_by_yann.sautreuil - 1: println(Violations count: $parsed.violations.size())
Violations count: 5
2025-12-21 11:23:06.989 DEBUG testcase.Axe_by_yann.sautreuil - 2: violations.each({ java.lang.Object v -> ... })
- color-contrast: Ensures the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds (impact: serious)
- heading-order: Ensures the order of headings is semantically correct (impact: moderate)
- landmark-one-main: Ensures the document has a main landmark (impact: moderate)
- link-name: Ensures links have discernible text (impact: serious)
- list: Ensures that lists are structured correctly (impact: serious)
2025-12-21 11:23:07.005 DEBUG testcase.Axe_by_yann.sautreuil - 10: closeBrowser()
2025-12-21 11:23:07.174 INFO c.k.katalon.core.main.TestCaseExecutor - END Test Cases/Axe_by_yann.sautreuil
It worked.