===== FILE HASHES =====
88422ce140ee30ffa1c972ff306e2595a7dff6408be0b64cf9567148b4230b60 /var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js
bb62d2c9e747507641b676c5faf26b9794905acb39129d736356c4b5501d9958 /var/www/vhosts/aiwebpageseo.com/site-audit/public/a11y-axe/run.js
a63abfcdc28fab7516d895933e0f2457411d0d922d9eb942a06d2e71fad039f9 /var/www/vhosts/aiwebpageseo.com/site-audit/public/a11y-axe/text-spacing.js
===== SPACING RULE REFERENCES =====
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1051-const A11Y_AXE_BASE = /^https?:$/.test(location.protocol) ? location.origin + '/a11y-axe/' : 'https://aiwebpageseo.com/a11y-axe/';
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1052-
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1053-function a11yAxeSources() {
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1054- if (window.__a11yAxeSrc && window.__a11yAxeSrc.axe && window.__a11yAxeSrc.run && window.__a11yAxeSrc.spacing) return Promise.resolve(window.__a11yAxeSrc);
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1055- if (!window.__a11yAxeSrcP) {
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1056- // Sent with this site's cookies, so the server's firewall knows the visitor has already passed its check; anything
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1057- // that is not a script (a firewall check page, an error page) counts as not loaded.
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1058- const get = f => fetch(A11Y_AXE_BASE + f, { credentials: 'same-origin' }).then(r => r.ok && /javascript/i.test(r.headers.get('content-type') || '') ? r.text() : Promise.reject(new Error('HTTP ' + r.status)));
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js:1059: window.__a11yAxeSrcP = Promise.all([get('axe.min.js'), get('run.js'), get('text-spacing.js')]).then(([axe, run, spacing]) => ({ axe, run, spacing })).catch(() => { window.__a11yAxeSrcP = null; return null; });
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1060- }
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1061- return window.__a11yAxeSrcP;
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1062-}
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1063-
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1064-function a11yAxeDoc(html, baseUrl, srcs) {
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1065- const d = new DOMParser().parseFromString(html, 'text/html');
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1066- d.querySelectorAll('script, noscript, meta[http-equiv], object, embed, applet, frame, frameset, portal, animate, set, animateMotion, animateTransform, base').forEach(n => n.remove());
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1067- d.querySelectorAll('iframe').forEach(f => { f.removeAttribute('src'); f.removeAttribute('srcdoc'); });
--
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1071- if (n.startsWith('on') || (/^(href|src|action|formaction|xlink:href|data|poster|background)$/.test(n) && /^\s*(javascript|vbscript|data:text\/html)/i.test(a.value))) el.removeAttribute(a.name);
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1072- }
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1073- }
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1074- const head = d.head || d.documentElement.insertBefore(d.createElement('head'), d.body);
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1075- if (baseUrl) { const b = d.createElement('base'); b.setAttribute('href', baseUrl); head.insertBefore(b, head.firstChild); }
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1076- const st = d.createElement('style'); st.textContent = '*,*::before,*::after{animation:none!important;transition:none!important;content-visibility:visible!important}'; head.appendChild(st);
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1077- const body = d.body || d.documentElement.appendChild(d.createElement('body'));
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1078- // A literal "' + d.documentElement.outerHTML;
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1081-}
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1082-
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1083-// cssOk: false when the page's stylesheets could not all be fetched; the checks that depend on how the page
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1084-// looks (link colours, scroll areas) are then left out rather than judged without the CSS.
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1085-function a11yAxe(html, baseUrl, cssOk) {
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1086- return new Promise(resolve => {
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1087- let done = false;
--
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1090- let started = false;
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1091- const onMsg = e => {
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1092- if (!fr.contentWindow || e.source !== fr.contentWindow || !e.data) return;
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1093- if (e.data.a11yAxe === 2) { started = true; return; }
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1094- if (e.data.a11yAxe !== 1) return;
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1095- const r = { ok: !!e.data.ok, error: e.data.error, version: e.data.version, violations: Array.isArray(e.data.violations) ? e.data.violations : [], actResults: Array.isArray(e.data.actResults) ? e.data.actResults : [] };
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1096- if (!cssOk) {
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1097- r.violations = r.violations.filter(v =>
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js:1098: !/^(link-in-text-block|scrollable-region-focusable|avoid-inline-spacing|act-9e45ec|act-24afc2)$/.test(v.id)
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1099- );
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1100- r.actResults = r.actResults.map(v =>
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1101- v.outcome === 'error'
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1102- ? v
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1103- : {
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1104- id: v.id,
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1105- outcome: 'unavailable',
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1106- error: 'Stylesheet retrieval was incomplete'
--
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1839- const wcagOf = tags => (tags || []).map(t => { const m = /^wcag(\d)(\d)(\d+)$/.exec(t); return m ? m[1] + '.' + m[2] + '.' + m[3] : ''; }).filter(Boolean);
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1840- // ACT spacing outcomes are preserved separately from axe-core.
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1841- // When axe already reports spacing, retain the ACT evidence
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1842- // without adding duplicate scored issues.
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1843- const actSpacing = Array.isArray(a11yAx.actResults)
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1844- ? a11yAx.actResults : [];
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1845-
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1846- for (const result of actSpacing) {
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js:1847: const name = result.id === '9e45ec'
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1848- ? 'word spacing'
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js:1849: : result.id === '24afc2'
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1850- ? 'letter spacing'
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1851- : 'text spacing';
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1852-
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1853- if (result.outcome === 'error' || result.outcome === 'unavailable') {
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1854- notes.push('ACT ' + name +
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1855- ' check could not complete: ' +
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1856- String(result.error || 'unknown error'));
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1857- }
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1858- }
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1859-
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1860- const axeHasSpacing = a11yAx.violations.some(v =>
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1861- v.id === 'avoid-inline-spacing'
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1862- );
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1863-
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1864- const a11yAxWcag = a11yAx.violations.filter(v =>
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1865- !v.bp &&
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js:1866: !(axeHasSpacing && /^act-(9e45ec|24afc2)$/.test(v.id))
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1867- );
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1868-
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1869- if (axeHasSpacing) {
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1870- for (const result of actSpacing) {
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1871- if (result.outcome === 'failed') {
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1872- notes.push(
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1873- 'Additional ACT evidence: ' + result.id +
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1874- ' detected restrictive ' +
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js:1875: (result.id === '9e45ec'
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1876- ? 'word spacing'
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1877- : 'letter spacing') +
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1878- '. Included under the existing axe spacing issue.'
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1879- );
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1880- }
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1881- }
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1882- }
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-1883- // Best-practice failures (not WCAG requirements) are listed as notes and never lower the score.
--
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-2043- Home About Us
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-2044-
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-2045- Our Products
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-2046-
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-2047- Check out our full product range .
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-2048-
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-2049-
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-2050-
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js:2051:
About aiwebpageseo
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-2052-
aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical SEO tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-2053-
/var/www/vhosts/aiwebpageseo.com/site-audit/public/accessibility-audit.js-2054-