1 2window.addEventListener("load", function () { 3 4 //var domElements = document.querySelectorAll("title, select, input, textarea, button, img, a, *[role]"); 5 6 var domElements = document.querySelectorAll("*"); 7 for (var domElement of domElements) { 8 9 var currentTagName = domElement.tagName.toLowerCase(); 10 var tabindex = domElement.getAttribute("tabindex"); 11 12 var ariaLabelStatus = true; 13 var altStatus = true; 14 var roleStatus = true; 15 16 if ( 17 typeof domElement.getAttribute("aria-label") === "undefined" 18 || domElement.getAttribute("aria-label") == "" 19 || domElement.getAttribute("aria-label") == null 20 ) { 21 ariaLabelStatus = false; 22 } 23 if ( 24 typeof domElement.getAttribute("alt") === "undefined" 25 || domElement.getAttribute("alt") == "" 26 || domElement.getAttribute("alt") == null 27 ) { 28 altStatus = false; 29 } 30 if ( 31 typeof domElement.getAttribute("role") === "undefined" 32 || domElement.getAttribute("role") == "" 33 || domElement.getAttribute("role") == null 34 ) { 35 roleStatus = false; 36 } 37 38 if ( 39 typeof tabindex !== "undefined" 40 && tabindex != null 41 && tabindex != "" 42 && tabindex > 0 43 ) { 44 domElement.setAttribute("tabindex", 0); 45 } 46 47 if (roleStatus) { 48 //console.log(currentTagName); 49 50 if (domElement.getAttribute("role") == "tablist") { 51 children = domElement.childNodes; 52 for (var child of children) { 53 //console.log(child.nodeType); 54 if (child.nodeType == 1 && 55 (typeof child.getAttribute("role") === "undefined" 56 || child.getAttribute("role") == null 57 || child.getAttribute("role") == "")) { 58 child.setAttribute("role", "tab"); 59 } 60 } 61 } 62 63 64 if (domElement.getAttribute("role") == "list") { 65 children = domElement.childNodes; 66 for (var child of children) { 67 //console.log(child.nodeType); 68 if (child.nodeType == 1 && 69 (typeof child.getAttribute("role") === "undefined" 70 || child.getAttribute("role") == null 71 || child.getAttribute("role") == "")) { 72 child.setAttribute("role", "listitem"); 73 } 74 } 75 } 76 77 if (domElement.getAttribute("role") == "listbox") { 78 children = domElement.childNodes; 79 for (var child of children) { 80 //console.log(child.nodeType); 81 if (child.nodeType == 1 && 82 (typeof child.getAttribute("role") === "undefined" 83 || child.getAttribute("role") == null 84 || child.getAttribute("role") == "")) { 85 child.setAttribute("role", "option"); 86 } 87 } 88 } 89 90 } 91 switch (currentTagName) { 92 case "td": 93 domElement.removeAttribute("tabindex"); 94 break; 95 case "title": 96 if ( 97 typeof document.title === "undefined" 98 || 99 document.title == null 100 || 101 document.title == "" 102 ) { 103 104 document.title = location.href; 105 } 106 break; 107 case "a": 108 if (!ariaLabelStatus) { 109 if ( 110 domElement.getAttribute("href") != "undefined" && 111 domElement.getAttribute("href") != null && 112 domElement.getAttribute("href") != "" 113 ) { 114 115 var tmp = domElement.innerText; 116 if (tmp != "undefined" && tmp != "") { 117 domElement.setAttribute("aria-label", tmp); 118 } else { 119 domElement.setAttribute("aria-label", "link to:" + domElement.getAttribute("href")); 120 } 121 } else { 122 123 domElement.removeAttribute("tabindex"); 124 domElement.removeAttribute("aria-label"); 125 126 //domElement.setAttribute("aria-label", "undefined link"); 127 } 128 129 } 130 break; 131 132 case "img": 133 if ( 134 domElement.getAttribute("src") != "undefined" && 135 domElement.getAttribute("src") != "" && 136 domElement.getAttribute("src") != null 137 ) { 138 var tmp = domElement.getAttribute("src"); 139 if (tmp.indexOf("/") != -1) { 140 tmp = tmp.substring(tmp.lastIndexOf("/") + 1); 141 } 142 if (tmp.indexOf(".") != -1) { 143 tmp = tmp.substring(0, tmp.lastIndexOf(".")); 144 } 145 if(!altStatus){ 146 domElement.setAttribute("alt", tmp); 147 } 148 } else { 149 domElement.setAttribute("alt", "undefined image"); 150 } 151 break; 152 case "select": 153 if (!ariaLabelStatus) { 154 if ( 155 domElement.options.length > 0 && 156 domElement.options[domElement.selectedIndex].text != "undefined" && 157 domElement.options[domElement.selectedIndex].text != "" && 158 domElement.options[domElement.selectedIndex].text != null 159 ) { 160 domElement.setAttribute("aria-label", "select" + domElement.options[domElement.selectedIndex].text); 161 } else if ( 162 domElement.options.length > 0 && 163 domElement.options[0].text != "undefined" && 164 domElement.options[0].text != "" && 165 domElement.options[0].text != null 166 ) { 167 domElement.setAttribute("aria-label", "select" + domElement.options[0].text); 168 } else if ( 169 domElement.getAttribute("name") != "undefined" && 170 domElement.getAttribute("name") != "" && 171 domElement.getAttribute("name") != null 172 ) { 173 domElement.setAttribute("aria-label", "select" + domElement.getAttribute("name")); 174 } else { 175 domElement.setAttribute("aria-label", "undefined select input"); 176 } 177 } 178 break; 179 case "input": 180 if (!ariaLabelStatus) {//placeholder 181 if ( 182 domElement.getAttribute("placeholder") != "undefined" && 183 domElement.getAttribute("placeholder") != "" && 184 domElement.getAttribute("placeholder") != null 185 ) { 186 domElement.setAttribute("aria-label", domElement.getAttribute("placeholder")); 187 } else if ( 188 domElement.value != "undefined" && 189 domElement.value != "" && 190 domElement.value != null 191 ) { 192 domElement.setAttribute("aria-label", domElement.value); 193 } else if ( 194 domElement.getAttribute("name") != "undefined" && 195 domElement.getAttribute("name") != "" && 196 domElement.getAttribute("name") != null 197 ) { 198 domElement.setAttribute("aria-label", domElement.getAttribute("name")); 199 } else if ( 200 domElement.getAttribute("type") != "undefined" && 201 domElement.getAttribute("type") != "" && 202 domElement.getAttribute("type") != null 203 ) { 204 domElement.setAttribute("aria-label", domElement.getAttribute("type")); 205 } else { 206 domElement.setAttribute("aria-label", "undefined input"); 207 } 208 } 209 break; 210 211 case "button": 212 if (!ariaLabelStatus) { 213 if ( 214 domElement.innerText != "undefined" && 215 domElement.innerText != "" && 216 domElement.innerText != null 217 ) { 218 domElement.setAttribute("aria-label", domElement.innerText); 219 } else if ( 220 domElement.value != "undefined" && 221 domElement.value != "" && 222 domElement.value != null 223 ) { 224 domElement.setAttribute("aria-label", domElement.value); 225 } else if ( 226 domElement.getAttribute("name") != "undefined" && 227 domElement.getAttribute("name") != "" && 228 domElement.getAttribute("name") != null 229 ) { 230 domElement.setAttribute("aria-label", domElement.getAttribute("name")); 231 } else { 232 domElement.setAttribute("aria-label", "undefined button"); 233 } 234 } 235 break; 236 237 case "textarea": 238 if (!ariaLabelStatus) { 239 if ( 240 domElement.value != "undefined" && 241 domElement.value != "" && domElement.value != null 242 ) { 243 domElement.setAttribute("aria-label", domElement.value); 244 } else if ( 245 domElement.getAttribute("name") != "undefined" && 246 domElement.getAttribute("name") != "" && 247 domElement.getAttribute("name") != null 248 ) { 249 domElement.setAttribute("aria-label", domElement.getAttribute("name")); 250 } else { 251 domElement.setAttribute("aria-label", "undefined textarea"); 252 } 253 } 254 break; 255 256 default: 257 258 break; 259 } 260 261 262 //window.getComputedStyle(domElement, ':before').getPropertyValue('content') 263 264 } 265});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.