const issues = []; document.querySelectorAll('img').forEach(img => { if (!img.alt && img.getAttribute('role') !== 'presentation') issues.push(`missing alt: ${img.currentSrc || img.src}`); if (!img.width || !img.height) issues.push(`missing intrinsic size: ${img.currentSrc || img.src}`); }); document.querySelectorAll('a[target="_blank"]').forEach(a => { if (!String(a.rel).includes('noopener')) issues.push(`target=_blank without noopener: ${a.href}`); }); console.table(issues.map(issue => ({ issue }))); console.log(`audit finished: ${issues.length} issue(s)`);