-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathList Images.js
1 lines (1 loc) · 22.8 KB
/
List Images.js
1
javascript:(function()%7B'use%20strict'%0Afunction%20listImages()%7B%0A%20%20console.clear()%3B%0A%20%20function%20isHidden(el)%20%7B%0A%20%20%20%20const%20style%3Dwindow.getComputedStyle(el)%3B%0A%20%20%20%20return%20((style.display%20%3D%3D%3D%20'none')%20%7C%7C%20(style.opacity%20%3D%3D%3D%200)%20%7C%7C%20((style.clipPath%20%3D%3D%3D%20'inset(100%25)')%20%26%26%20(style%0A%20%20%20%20%20%20.clip%20%3D%3D%3D%20'rect(1px%2C%201px%2C%201px%2C%201px)'))%20%7C%7C%20((style.height%20%3D%3D%3D%20'1px')%20%26%26%20(style.width%20%3D%3D%3D%20'1px')%20%26%26%20(style%0A%20%20%20%20%20%20.overflow%20%3D%3D%3D%20'hidden')))%3B%0A%20%20%7D%0A%20%20%0A%20%20function%20attemptoToUnhide(el)%20%7B%0A%20%20%20%20const%20style%3Dwindow.getComputedStyle(el)%3B%0A%20%20%0A%20%20%20%20if%20((style.position%20%3D%3D%3D%20%22absolute%22)%20%26%26%20(style.overflow%20%3D%3D%3D%20'hidden'))%20%7B%0A%20%20%20%20%20%20el.style.height%3D'auto'%3B%0A%20%20%20%20%20%20el.style.width%3D'auto'%3B%0A%20%20%20%20%20%20el.style.position%3D'relative'%3B%0A%20%20%20%20%20%20el.style.overflow%3D'visible'%3B%0A%20%20%20%20%20%20el.style.display%3D'block'%3B%0A%20%20%20%20%20%20el.style.opacity%3D1%3B%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20if%20((el.getAttribute('hidden')%20%3D%3D%3D%20%22%22)%20%7C%7C%20(el.getAttribute('hidden')%20%3D%3D%3D%20%22hidden%22)%20%7C%7C%20(el.getAttribute(%0A%20%20%20%20%20%20%20%20'hidden')%20%3D%3D%3D%20%22true%22))%20%7B%0A%20%20%20%20%20%20el.removeAttribute('hidden')%3B%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20if%20(style.visibility%20%3D%3D%3D%20'hidden')%20%7B%0A%20%20%20%20%20%20el.style.visibility%3D'visible'%3B%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20if%20(style.display%20%3D%3D%3D%20'none')%20%7B%0A%20%20%20%20%20%20el.style.display%3D'block'%3B%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20if%20(style.opacity%20%3D%3D%3D%200)%20%7B%0A%20%20%20%20%20%20el.style.opacity%3D1%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20%0A%20%20let%20s%3D''%3B%0A%20%20let%20row%3D''%3B%0A%20%20const%20imgs%3Ddocument.querySelectorAll('img%2C%5Brole%3Dimg%5D')%3B%0A%20%20let%20i%3D1%3B%0A%20%20let%20imgType%3B%0A%20%20let%20issueCount%3D0%3B%0A%20%20let%20snippet%3D''%3B%0A%20%20let%20consoleOutput%3D''%3B%0A%20%20%0A%20%20Array.from(imgs).forEach(function%20(img)%20%7B%0A%20%20%20%20const%20wrap%20%3D%20document.createElement('div')%3B%0A%20%20%20%20wrap.appendChild(img.cloneNode(true))%3B%0A%20%20%20%20snippet%20%3D%20wrap.innerHTML%3B%0A%20%20%20%20let%20notes%3D''%3B%0A%20%20%20%20let%20noAlt%3Dfalse%3B%0A%20%20%20%20let%20emptyAlt%3Dfalse%3B%0A%20%20%20%20let%20warn%3Dfalse%3B%0A%20%20%20%20let%20err%3Dfalse%3B%0A%20%20%20%20%0A%20%20%20%20const%20ariaHiddenEl%20%3D%20img.querySelector('%5Baria-hidden%3Dtrue%5D')%3B%0A%20%20%20%20if%20(ariaHiddenEl)%20%7B%0A%20%20%20%20%20%20ariaHiddenEl.classList.add('remove-from-accname')%3B%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20img.setAttribute('data-img-ref'%2C%20i)%3B%0A%20%20%20%20let%20alt%3Dimg.getAttribute('alt')%3B%0A%20%20%0A%20%20%20%20if%20(alt%3D%3D%3Dnull)%20%7B%0A%20%20%20%20%20%20alt%3D%22NO_ALT_ATTRIBUTE%22%3B%0A%20%20%20%20%20%20noAlt%3Dtrue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20if%20(alt%3D%3D%3D'')%20%7B%0A%20%20%20%20%20%20%20%20alt%3D%22EMPTY_ALT_ATTRIBUTE%22%3B%0A%20%20%20%20%20%20%20%20emptyAlt%3Dtrue%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20let%20accName%3Dalt%3B%0A%20%20%0A%20%20%20%20const%20imgSrc%20%3D%20img.getAttribute('src')%3B%0A%20%20%0A%20%20%20%20if%20(isHidden(img))%20%7B%0A%20%20%20%20%20%20attemptoToUnhide(img)%3B%0A%20%20%20%20%20%20if%20(isHidden(img))%20%7B%0A%20%20%20%20%20%20%20%20notes%20%2B%3D'img%20is%20hidden.%3Cbr%3E'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20notes%20%2B%3D'img%20*was*%20hidden%20but%20has%20been%20temporarily%20revealed%20on%20the%20page.%3Cbr%3E'%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(noAlt)%20%7B%0A%20%20%20%20%20%20if%20(!((img.getAttribute('role')%20%3D%3D%3D%20'img')%26%26(img.tagName%20!%3D%3D%20'IMG')))%20%7B%0A%20%20%20%20%20%20notes%3D'-%20img%20has%20no%20%3Ccode%3Ealt%3C%2Fcode%3E%20attribute.%3Cbr%3E'%3B%0A%20%20%20%20%20%20err%3Dtrue%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20if%20(emptyAlt)%20%7B%0A%20%20%20%20%20%20notes%3D'-%20img%20has%20an%20empty%20%3Ccode%3Ealt%3C%2Fcode%3E%20attribute.%20This%20will%20hide%20it%20from%20AT.%20Is%20this%20correct%3F.%3Cbr%3E'%3B%0A%20%20%20%20%20%20warn%3Dtrue%3B%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20if%20((img.getAttribute('role')%20%3D%3D%3D%20'presentation')%7C%7C(img.getAttribute('role')%20%3D%3D%3D%20'none'))%20%7B%0A%20%20%20%20%20%20notes%2B%3D'-%20img%20has%20a%20%3Ccode%3Erole%3C%2Fcode%3E%20set%20(%5C''%20%2B%20img.getAttribute('role')%20%2B%20'%5C')%20that%20will%20hide%20it%20from%20AT.%20Is%20this%20correct%3F.%3Cbr%3E'%3B%0A%20%20%20%20%20%20warn%3Dtrue%3B%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20if%20(img.getAttribute('aria-hidden')%20%3D%3D%3D%20'true')%20%7B%0A%20%20%20%20%20%20notes%2B%3D'-%20img%20has%20an%20%3Ccode%3Earia-hidden%3Dtrue%3C%2Fcode%3E%2C%20so%20it%20will%20be%20hidden%20from%20AT.%20Is%20this%20correct%3F.%3Cbr%3E'%3B%0A%20%20%20%20%20%20warn%3Dtrue%3B%0A%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(img.getAttribute('title'))%20%7B%0A%20%20%20%20%20%20if%20(alt%3D%3D%3D'EMPTY_ALT_ATTRIBUTE')%20%7B%0A%20%20%20%20%20%20%20%20notes%2B%3D'-%20img%20has%20a%20%3Ccode%3Etitle%3C%2Fcode%3E%20AND%20an%20empty%20%3Ccode%3Ealt%3C%2Fcode%3E%20attribute.%20Because%20of%20the%20empty%20alt%2C%20the%20image%20will%20be%20hidden%20to%20AT%2C%20so%20the%20title%20attribute%20is%20not%20used%2Fexposed.%3Cbr%3E'%3B%0A%20%20%20%20%20%20%20%20warn%3Dfalse%3B%0A%20%20%20%20%20%20%20%20err%3Dtrue%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20notes%2B%3D'-%20img%20has%20a%20%3Ccode%3Etitle%3C%2Fcode%3E%20attribute.%20This%20%3Ccode%3Etitle%3C%2Fcode%3E%20content%20--%20%22'%20%2B%0A%20%20%20%20%20%20%20%20%20%20img.getAttribute('title')%20%2B%0A%20%20%20%20%20%20%20%20%20%20'%22%20--%20will%20not%20be%20perceivable%20to%20assistive%20tech%2C%20keyboard%20and%20touch%20screen%20users.%3Cbr%3E'%3B%0A%20%20%20%20%20%20%20%20if%20(noAlt)%20%7B%0A%20%20%20%20%20%20%20%20%20%20err%3Dtrue%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20warn%3Dtrue%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20if%20(img.getAttribute('role')%20%3D%3D%3D%20'button')%20%7B%0A%20%20%20%20%20%20notes%2B%3D'-%20img%20has%20a%20%3Ccode%3Erole%3C%2Fcode%3E%20of%20%3Ccode%3Ebutton%3C%2Fcode%3E.%20Check%20that%20it%20behaves%20like%20a%20%3Ccode%3Ebutton%3C%2Fcode%3E.%3Cbr%3E'%3B%0A%20%20%20%20%20%20warn%3Dtrue%3B%0A%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(img.getAttribute('role')%20%3D%3D%3D%20'img')%20%7B%0A%20%20%20%20%20%20notes%2B%3D'-%20Not%20an%20inline%20img%2C%20so%20no%20%3Ccode%3Ealt%3C%2Fcode%3E%20attribute.%3Cbr%3E'%3B%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20if%20((img.getAttribute('role')%20%3D%3D%3D%20'img')%26%26(img.getAttribute('alt')!%3D%3Dnull))%20%7B%0A%20%20%20%20%20%20if%20(img.tagName%20!%3D%3D%20'IMG')%20%7B%0A%20%20%20%20%20%20%20%20notes%2B%3D'-%20Background%20image%20has%20an%20%3Ccode%3Ealt%3C%2Fcode%3E%20attribute%20specified%2C%20but%20cannot%20be%20applied%20to%20this%20element%3B%20can%20only%20be%20applied%20to%20%3Ccode%3Eimg%3C%2Fcode%3E%20element.%3Cbr%3E'%3B%0A%20%20%20%20%20%20%20%20warn%3Dfalse%3B%0A%20%20%20%20%20%20%20%20err%3Dtrue%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20if%20(img.tagName%20!%3D%3D%20'IMG'%20%26%26%20img.getAttribute('role')%20%3D%3D%3D%20'img')%20%7B%0A%20%20%20%20%20%20notes%2B%3D'-%20This%20has%20a%20%3Ccode%3Erole%3C%2Fcode%3E%20of%20%3Ccode%3Eimg%3C%2Fcode%3E%20but%20is%20not%20an%20%3Ccode%3Eimg%3C%2Fcode%3E%20element.%3Cbr%3E'%3B%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20if%20(img.getAttribute('role')%20%3D%3D%3D%20'img')%20%7B%0A%20%20%20%20%20%20let%20hasLabel%3Dfalse%3B%0A%20%20%20%20%20%20if%20(img.tagName%20!%3D%3D%20'IMG')%20%7B%0A%20%20%20%20%20%20%20%20const%20style%20%3D%20img.currentStyle%20%7C%7C%20window.getComputedStyle(img%2C%20false)%2C%0A%20%20%20%20%20%20%20%20imgSrc%20%3D%20style.backgroundImage.slice(4%2C%20-1).replace(%2F%22%2Fg%2C%20%22%22)%3B%0A%20%20%20%20%20%20%20%20if%20(img.getAttribute('aria-label')!%3D%3Dnull)%20%7B%0A%20%20%20%20%20%20%20%20%20%20hasLabel%3Dtrue%3B%0A%20%20%20%20%20%20%20%20%20%20alt%20%3D%20img.getAttribute('aria-label')%3B%0A%20%20%20%20%20%20%20%20%20%20accName%20%3D%20alt%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20notes%2B%3D'-%20Accessible%20name%20provided%20by%20an%20%3Ccode%3Earia-label%3C%2Fcode%3E%20attribute.%3Cbr%3E'%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20warn%3Dfalse%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20(!hasLabel)%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20(img.getAttribute('aria-labelledby')!%3D%3Dnull)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20hasLabel%3Dtrue%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20source%3Dimg.getAttribute('aria-labelledby')%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20sources%3Dsource.split('%20')%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(sources.length%20%3E%201)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt%3D''%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Array.from(sources).forEach(function%20(source)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt%20%2B%3Ddocument.querySelector('%23'%20%2B%20source).textContent%20%2B%20'%20'%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt%3Dalt.trim()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20notes%2B%3D'-%20Image%20gets%20accessible%20name%20from%20%3Ccode%3Earia-labelledby%3C%2Fcode%3E%20(multiple%20sources).%20Check%20that%20the%20accessible%20name%20does%20not%20contradict%20the%20image%20on%20screen%3Cbr%3E'%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20warn%3Dtrue%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt%3Ddocument.querySelector('%23'%20%2B%20img.getAttribute('aria-labelledby')).textContent%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20notes%2B%3D'-%20Image%20gets%20accessible%20name%20from%20%3Ccode%3Earia-labelledby%3C%2Fcode%3E%20(single%20source).%20Check%20that%20the%20accessible%20name%20does%20not%20contradict%20the%20image%20on%20screen%3Cbr%3E'%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20warn%3Dtrue%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20accName%3Dalt%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20if%20(!hasLabel)%20%7B%0A%20%20%20%20%20%20%20%20notes%2B%3D'-%20Image%20has%20no%20accessible%20name%20provided.%20It%20must%20be%20set%20using%20%3Ccode%3Earia-labelledby%3C%2Fcode%3E%20or%20%3Ccode%3Earia-label%3C%2Fcode%3E%20(not%20%3Ccode%3Ealt%3C%2Fcode%3E)%3Cbr%3E'%3B%0A%20%20%20%20%20%20%20%20err%3Dtrue%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20if%20(accName%20%3D%3D%3D%20%22%22)%20%7B%0A%20%20%20%20%20%20if%20(img.getAttribute('title'))%20%7B%0A%20%20%20%20%20%20%20%20accName%20%3D%20img.getAttribute('title')%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20accName%3D%22%E2%80%BC%EF%B8%8F%20No%20alt%2C%20no%20title%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20notes%20%2B%3D'%E2%80%BC%EF%B8%8F%20No%20alt.%3Cbr%3E'%3B%0A%20%20%20%20%20%20err%3Dtrue%3B%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20if%20(err)%20%7Bwarn%3Dfalse%7D%0A%20%20%20%20row%20%2B%3D'%3Ctr'%3B%0A%20%20%20%20row%20%2B%3D'%20data-img-ref%3D%22'%20%2B%20i%20%2B%20'%22'%3B%0A%20%20%0A%20%20%20%20if%20(warn)%20%7B%0A%20%20%20%20%20%20row%20%2B%3D'%20class%3D%22issue%20warn%22'%3B%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20if%20(err)%20%7B%0A%20%20%20%20%20%20row%20%2B%3D'%20class%3D%22issue%20err%22'%3B%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20row%20%2B%3D'%3E'%3B%0A%20%20%0A%20%20%20%20if%20(img.tagName%20%3D%3D%3D%20'IMG')%20%7B%0A%20%20%20%20%20%20imgType%3D'%3Ccode%3E%26lt%3Bimg%26gt%3B%3C%2Fcode%3E'%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20imgType%3D'%3Ccode%3Erole%3D%22img%22%3C%2Fcode%3E'%3B%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20if%20((accName%3D%3D%3D'NO_ALT_ATTRIBUTE')%7C%7C(accName%3D%3D%3D'EMPTY_ALT_ATTRIBUTE'))%20%7B%0A%20%20%20%20%20%20alt%3D''%3B%0A%20%20%20%20%20%20accName%3D''%3B%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20row%20%2B%3D'%3Ctd%3E'%20%2B%20imgType%20%2B%20'%3C%2Ftd%3E'%3B%0A%20%20%20%20row%20%2B%3D'%3Ctd%3E%3Cimg%20src%3D%22'%20%2B%20imgSrc%20%2B%20'%22%20alt%3D%22%22%20style%3D%22max-width%3A200px%3Bmax-height%3A200px%3B%22%3E%3C%2Ftd%3E'%3B%0A%20%20%20%20row%20%2B%3D'%3Ctd%3E'%20%2B%20accName%3B%0A%20%20%20%20if%20((accName.trim()%20!%3D%3D%20alt.trim())%20%26%26%20(alt.trim()!%3D%3D''))%20%7B%0A%20%20%20%20%20%20row%20%2B%3D'%3Cdiv%20class%3D%22anDiff%22%3EAccessible%20name%20differs%3C%2Fdiv%3E'%3B%0A%20%20%20%20%7D%0A%20%20%20%20row%20%2B%3D'%3C%2Ftd%3E'%3B%0A%20%20%20%20if%20((accName.trim()%20!%3D%3D%20alt.trim())%20%26%26%20(accName.trim().toLowerCase()%20%3D%3D%3D%20alt.trim()%0A%20%20%20%20%20%20%20%20.toLowerCase()))%20%7B%0A%20%20%20%20%20%20notes%20%2B%3D'-%20Same%20text%20but%20case%20difference%20noted%20(likely%20not%20an%20issue)'%3B%0A%20%20%20%20%7D%0A%20%20%20%20row%20%2B%3D'%3Ctd%3E'%3B%0A%20%20%20%20if%20(warn)%20%7B%0A%20%20%20%20%20%20row%2B%3D'%3Cdiv%20class%3D%22issues%22%3EPossible%20issue(s)%20found%20with%20this%20image%3C%2Fdiv%3E'%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(err)%20%7B%0A%20%20%20%20%20%20row%2B%3D'%3Cdiv%20class%3D%22issues%22%3EDefinite%20issue(s)%20found%20with%20this%20image%3C%2Fdiv%3E'%3B%0A%20%20%20%20%20%20consoleOutput%3D'Image%20%5C''%20%2B%20imgSrc%20%2B%20'%5C'%3A%5Cn'%2Bnotes%2B'Markup%20with%20issue%3A%5Cn'%2Bsnippet%2B'%5Cn---------------%5Cn'%3B%0A%20%20%20%20%7D%0A%20%20%20%20row%20%2B%3Dnotes%20%2B%20'%3Cbutton%20class%3D%22showSnippet%22%20type%3D%22button%22%20aria-label%3D%22Show%20markup%20snippet%22%20aria-expanded%3D%22false%22%3E%3Ccode%3E%26lt%3B%2F%26gt%3B%3C%2Fcode%3E%3C%2Fbutton%3E%3Cdiv%20class%3D%22snippet%22%20hidden%3E%3Clabel%20for%3D%22snip'%2B%20i%20%2B%20'%22%3EMarkup%20snippet%3C%2Flabel%3E%3Ctextarea%20id%3D%22snip'%2B%20i%20%2B%20'%22%20aria-label%3D%22Markup%20snippet%20for%20this%20node%22%3E'%20%2B%20snippet%20%2B%20'%3C%2Ftextarea%3E%3Cbutton%20type%3D%22button%22%20class%3D%22decrapulate%22%20aria-label%3D%22De-crapulate%20this%20markup%20snippet%22%3EDe-crapulate%3C%2Fbutton%3E%3C%2Fdiv%3E%3C%2Ftd%3E'%3B%0A%20%20%20%20row%20%2B%3D'%3Ctd%3E%3Cbutton%20data-img-ref%3D%22'%20%2B%20i%20%2B%20'%22%20class%3D%22highlightButton%22%20type%3D%22button%22%20aria-pressed%3D%22false%22%20aria-label%3D%22Highlight%20this%20issue%20on%20the%20page%20visually%22%3EShow%3C%2Fbutton%3E%3C%2Ftd%3E'%3B%0A%20%20%20%20row%20%2B%3D'%3C%2Ftr%3E'%3B%0A%20%20%20%20i%2B%2B%3B%0A%20%20%20%20if%20(warn%20%7C%7C%20err)%20%7B%0A%20%20%20%20%20%20issueCount%2B%2B%3B%0A%20%20%20%20%20%20consoleOutput%3DconsoleOutput.split('%3Ccode%3E').join('%60').split('%3C%2Fcode%3E').join('%60').split('%3Cbr%3E').join('%5Cn').split('%5Cn%5Cn').join('%5Cn')%3B%0A%20%20%20%20%20%20console.log(consoleOutput)%3B%0A%20%20%20%20%7D%0A%20%20%7D)%3B%0A%20%20s%3D'%3Cstyle%3E%5Baria-pressed%3Dtrue%5D%7Bcolor%3Awhite%3Bbackground%3Adarkred%3B%7D%3Bdiv.issues%7Bfont-weight%3Abold%3B%7D%3Btextarea%20%7Bmargin%3A5px%200%3B%7D.snippet%20label%20%7Bfont-weight%3Abold%3Bfont-size%3A0.8em%3Bcolor%3Ablack%3B%7D.snippet%7Bbackground%3A%23efefef%3Boutline%3A1px%20solid%20%23666%3Bpadding%3A5px%3Bmargin-top%3A5px%3B%7D.checkDiffs%7Bbackground%3APapayaWhip%3B%7D.anDiff%7Bcolor%3Ared%3Bfont-weight%3Abold%3Bfont-size%3A10px%3Bdisplay%3Ablock%7D.warn%20%7Bbackground%3Alightyellow%3B%7D.err%20%7Bbackground%3APapayaWhip%3Bcolor%3Ared%3B%7D.visually-hidden%2C.a11y%2C.visuallyhidden%2C.sr-text%2C.sr-only%20%7Bclip-path%3A%20inset(100%25)%3Bclip%3A%20rect(1px%2C%201px%2C%201px%2C%201px)%3Bheight%3A%201px%3Boverflow%3A%20hidden%3Bposition%3A%20absolute%3Bwhite-space%3A%20nowrap%3Bwidth%3A%201px%3B%7D*%20%7B-webkit-box-sizing%3A%20border-box%3Bbox-sizing%3A%20border-box%3B%7Dhtml%20%7B%2F*border%3A%20.75em%20solid%20%23fff%3B*%2Fmin-height%3A%20100vh%3B%7Dbody%20%7Bbackground%3A%20%23f7f7f5%3Bcolor%3A%20%23333%3Bfont%3A%20400%20105%25%2F1.4%20%22Work%20Sans%22%2C%20sans-serif%3Bmargin%3A%201.5em%20auto%3Bmax-width%3A%2054em%3Bwidth%3A%2090%25%3B%7Da%3Aimg%2Ca%3Avisited%20%7Bborder-bottom%3A%201px%20solid%20rgba(42%2C%20122%2C%20130%2C%20.5)%3Bcolor%3A%20%232b7a82%3Btext-decoration%3A%20none%3B%7Da%3Ahover%20%7Bborder-bottom%3A%202px%20solid%3Bcolor%3A%20%231e565c%3B%7Dbutton%3Afocus%2Ca%3Afocus%20%7Bbox-shadow%3A%20none%3Boutline-offset%3A%202px%3Boutline%3A%203px%20solid%20rgba(42%2C%20122%2C%20130%2C%20.75)%3B%7Da%3Afocus%20%7Bborder-bottom%3A%20none%3B%7Da%3Aactive%20%7Bbackground%3A%20%23333%3Bcolor%3A%20%23fff%3B%7Dcode%20%7Bfont-family%3A%20Consolas%2C%20monaco%2C%20monospace%3B-moz-tab-size%3A%204%3Btab-size%3A%204%3Btext-transform%3A%20none%3Bwhite-space%3A%20pre-wrap%3Bcolor%3Abrown%3B%7Dtextarea%20%7Bwidth%3A%20100%25%7Dlegend%20h2%2C%20legend%20h3%20%7Bmargin%3A%200%3B%7Dtable%20%7Bborder-collapse%3A%20collapse%3B%7Dth%2Ctd%20%7Bpadding%3A%2010px%3Bborder%3A2px%20solid%20%232b7a82%3B%7Dtable%20caption%20%7Bfont-weight%3A%20bold%3Btext-align%3A%20left%3Bmargin%3A1em%200%3B%7D%3C%2Fstyle%3E%3Ch1%3EList%20of%20images%20on%20this%20page.%3C%2Fh1%3E'%3B%0A%20%20s%2B%3D'%3Cinput%20type%3D%22checkbox%22%20id%3D%22showPotentialProblemsOnly%22%3E%3Clabel%20for%3D%22showPotentialProblemsOnly%22%3EShow%20only%20images%20where%20there%20*may*%20be%20issues%20('%20%2B%20issueCount%20%2B%20'%20found)%3C%2Flabel%3E'%3B%0A%20%20s%2B%3D'%20%3Cbutton%20class%3D%22highlightButtonAll%22%20type%3D%22button%22%20aria-pressed%3D%22false%22%3EHighlight%20all%20images%20on%20page%3C%2Fbutton%3E'%3B%0A%20%20s%2B%3D'%3Ctable%20border%3D%221%22%20cellpadding%3D%225%22%3E%3Ccaption%3EAll%20images%20(img%20elements%20or%20elements%20with%20role%3D%22img%22)%20on%20this%20page%2C%20the%20accessible%20name%20and%20any%20issues%20found%3C%2Fcaption%3E%3Cthead%3E%3Ctr%20valign%3Dtop%3E%3Cth%3EImage%20type%3C%2Fth%3E%3Cth%3EImage%20thumbnail%3C%2Fth%3E%3Cth%20scope%3D%22col%22%3EAccessible%20name%3C%2Fth%3E%3Cth%20scope%3D%22col%22%3ENotes%3C%2Fth%3E%3Cth%3EHighlight%20on%20the%20page%3C%2Fth%3E%3C%2Ftr%3E%3C%2Fthead%3E%3Ctbody%3E'%20%2B%20row%20%2B%20'%3C%2Ftbody%3E%3C%2Ftable%3E'%3B%0A%20%20s%2B%3D'%3Cscript%3Efunction%20showImages()%7B'%3B%0A%20%20s%2B%3D'var%20refWindow%3Dwindow.opener%3B'%3B%0A%20%20s%2B%3D'var%20highlightButtons%3Ddocument.querySelectorAll(%22.highlightButton%22)%3Bvar%20imgToHighlight%3BArray.from(highlightButtons).forEach(highlightButton%20%3D%3E%20%7BhighlightButton.addEventListener(%22click%22%2C%20e%20%3D%3E%20%7BimgToHighlight%3D%22%5Bdata-img-ref%3D%5C'%22%20%2B%20highlightButton.getAttribute(%22data-img-ref%22)%20%2B%20%22%5C'%5D%22%3Bif%20(highlightButton.getAttribute(%22aria-pressed%22)%3D%3D%3D%22false%22)%20%7BrefWindow.document.querySelector(imgToHighlight).setAttribute(%22tabindex%22%2C%22-1%22)%3BrefWindow.document.querySelector(imgToHighlight).focus()%3BrefWindow.document.querySelector(imgToHighlight).style.outline%3D%2210px%20solid%20darkred%22%3BrefWindow.document.querySelector(imgToHighlight).style.outlineOffset%3D%22-10px%22%3BhighlightButton.setAttribute(%22aria-pressed%22%2C%22true%22)%3B%7D%20else%20%7BrefWindow.document.querySelector(imgToHighlight).style.outline%3D%22%22%3BhighlightButton.setAttribute(%22aria-pressed%22%2C%22false%22)%3B%7D%7D)%3B%7D)%3B'%3B%0A%20%20s%2B%3D'var%20highlightButtonAll%3Ddocument.querySelector(%22.highlightButtonAll%22)%3BhighlightButtonAll.addEventListener(%22click%22%2C%20e%20%3D%3E%20%7Bif%20(highlightButtonAll.getAttribute(%22aria-pressed%22)%3D%3D%3D%22false%22)%20%7BArray.from(highlightButtons).forEach(highlightButton%20%3D%3E%20%7BhighlightButton.setAttribute(%22aria-pressed%22%2C%22false%22)%3BhighlightButton.click()%3B%7D)%3BhighlightButtonAll.setAttribute(%22aria-pressed%22%2C%22true%22)%3B%7D%20else%20%7BArray.from(highlightButtons).forEach(highlightButton%20%3D%3E%20%7BhighlightButton.setAttribute(%22aria-pressed%22%2C%22true%22)%3BhighlightButton.click()%3B%7D)%3BhighlightButtonAll.setAttribute(%22aria-pressed%22%2C%22false%22)%3B%7D%7D)%3B'%3B%0A%20%20s%2B%3D'var%20imgsToCopy%3Ddocument.querySelectorAll(%22.imgToCopy%22)%3BArray.from(imgsToCopy).forEach(imgToCopy%20%3D%3E%20%7BimgToCopy.addEventListener(%22focus%22%2C%20e%20%3D%3E%20%7BimgToCopy.select()%3B%7D)%3B%7D)%3B'%3B%0A%20%20s%2B%3D'function%20hideGoodRows()%7BArray.from(trsWithoutIssue).forEach(trWithoutIssue%20%3D%3E%20%7BtrWithoutIssue.setAttribute(%22hidden%22%2C%22hidden%22)%3B%7D)%3B%7Dfunction%20showGoodRows()%7BArray.from(trsWithoutIssue).forEach(trWithoutIssue%20%3D%3E%20%7BtrWithoutIssue.removeAttribute(%22hidden%22)%3B%7D)%3B%7Dvar%20trsWithoutIssue%3Ddocument.querySelectorAll(%22tbody%20tr%3Anot(.issue)%22)%3Bvar%20showProblemCheckbox%3Ddocument.querySelector(%22%23showPotentialProblemsOnly%22)%3BshowProblemCheckbox.addEventListener(%22click%22%2C%20e%20%3D%3E%20%7Bif%20(showProblemCheckbox.checked)%20%7BhideGoodRows()%3B%7D%20else%20%7BshowGoodRows()%3B%7D%7D)%3B'%3B%0A%20%20s%2B%3D'%7Dwindow.addEventListener(%22load%22%2C%20(event)%20%3D%3E%20%7BshowImages()%3B%7D)%3B%3C%2Fscript%3E'%3B%0A%20%20s%2B%3D'%3Cscript%3E'%3B%0A%20%20s%2B%3D'var%20dcUrl%20%3D%20%22https%3A%2F%2Flloydi.com%2Fa11y-tools%2Fmarkup-de-crapulator%2Findex.html%3Fmarkup%3D%22%3B'%3B%0A%20%20s%2B%3D'const%20dcs%20%3D%20document.querySelectorAll(%22.decrapulate%22)%3B'%3B%0A%20%20s%2B%3D'Array.from(dcs).forEach(function%20(dc)%20%7B'%3B%0A%20%20s%2B%3D'dc.addEventListener(%22click%22%2C%20e%20%3D%3E%20%7B'%3B%0A%20%20s%2B%3D'var%20m%20%3D%20dc.previousElementSibling.value%3B'%3B%0A%20%20s%2B%3D'm%20%3D%20encodeURIComponent(m)%3B'%3B%0A%20%20s%2B%3D'window.open(dcUrl%20%2B%20m%2C%20%22dcWin%22%2C%20%22height%3D800%2Cwidth%3D1000%22)%3B'%3B%0A%20%20s%2B%3D'%7D)%3B'%3B%0A%20%20s%2B%3D'%7D)%3B'%3B%0A%20%20s%2B%3D'const%20sss%20%3D%20document.querySelectorAll(%22.showSnippet%22)%3B'%3B%0A%20%20s%2B%3D'Array.from(sss).forEach(function%20(ss)%20%7B'%3B%0A%20%20s%2B%3D'ss.addEventListener(%22click%22%2C%20e%20%3D%3E%20%7B'%3B%0A%20%20s%2B%3D'let%20n%20%3D%20ss.nextElementSibling%3B'%3B%0A%20%20s%2B%3D'if%20(ss.getAttribute(%22aria-expanded%22)%3D%3D%3D%22false%22)%20%7B'%3B%0A%20%20s%2B%3D'n.removeAttribute(%22hidden%22)%3B'%3B%0A%20%20s%2B%3D'ss.setAttribute(%22aria-expanded%22%2C%22true%22)%3B'%3B%0A%20%20s%2B%3D'%7D%20else%20%7B'%3B%0A%20%20s%2B%3D'n.setAttribute(%22hidden%22%2C%22hidden%22)%3B'%3B%0A%20%20s%2B%3D'ss.setAttribute(%22aria-expanded%22%2C%22false%22)%3B'%3B%0A%20%20s%2B%3D'%7D'%3B%0A%20%20s%2B%3D'%7D)%3B'%3B%0A%20%20s%2B%3D'%7D)%3B'%3B%0A%20%20s%2B%3D'%3C%2Fscript%3E'%3B%0A%20%20%0A%20%20const%20popUpWinImages%3Dwindow.open(''%2C%20'popUpWinImages'%2C%20'height%3D800%2Cwidth%3D1000')%3B%0A%20%20popUpWinImages.document.open()%3B%0A%20%20popUpWinImages.document.write(s)%3B%0A%20%20popUpWinImages.document.close()%3B%0A%7D%0AlistImages()%3B%7D)()