Skip to content

Instantly share code, notes, and snippets.

@tkaufmann
tkaufmann / images.js
Created June 24, 2025 10:02
Fixed images.js bookmarklet v3 - without javascript: prefix
(function() {
function callback() {
function l() {
$("span").remove(".altSpan, .axSpan, .closeSpan");
$("a[alt], button[alt], label[alt]").each(function() {
$(this).before("<span class=\"altSpan\" style=\"color:black;font-weight:bold;font-family:sans-serif;font-size:small;background-color:yellow;speak:literal-punctuation;\"> INVALID❌alt=\""+$(this).attr('alt')+"\" on "+$(this).prop("tagName")+"</span>");
});
$("img, [role=img]").each(function() {
if($(this).attr('role')) {
$(this).after("<span class=\"closeSpan\" style=\"color:black;font-weight:bold;font-family:sans-serif;font-size:small;background-color:yellow;outline:orange 2px dashed;margin:0 2px; padding:2px;speak:literal-punctuation;\">❓role=\""+$(this).attr('role')+"\"</span>");
@tkaufmann
tkaufmann / images.js
Created June 24, 2025 10:00
Fixed images.js bookmarklet v2 - clean version
javascript: (function() {
function callback() {
function l() {
$("span").remove(".altSpan, .axSpan, .closeSpan");
$("a[alt], button[alt], label[alt]").each(function() {
$(this).before("<span class=\"altSpan\" style=\"color:black;font-weight:bold;font-family:sans-serif;font-size:small;background-color:yellow;speak:literal-punctuation;\"> INVALID❌alt=\""+$(this).attr('alt')+"\" on "+$(this).prop("tagName")+"</span>");
});
$("img, [role=img]").each(function() {
if($(this).attr('role')) {
$(this).after("<span class=\"closeSpan\" style=\"color:black;font-weight:bold;font-family:sans-serif;font-size:small;background-color:yellow;outline:orange 2px dashed;margin:0 2px; padding:2px;speak:literal-punctuation;\">❓role=\""+$(this).attr('role')+"\"</span>");
@tkaufmann
tkaufmann / images.js
Last active June 24, 2025 09:58
Fixed images.js bookmarklet - images without alt in links now get red border
javascript: (function() {
function callback() {
function l() {
$("span").remove(".altSpan, .axSpan, .closeSpan");
$("a[alt], button[alt], label[alt]").each(function() {
$(this).before("<span class=\"altSpan\" style=\"color:black;font-weight:bold;font-family:sans-serif;font-size:small;background-color:yellow;speak:literal-punctuation;\"> INVALID❌alt=\""+$(this).attr('alt')+"\" on "+$(this).prop("tagName")+"</span>");
});
$("img, [role=img]").each(function() {
if($(this).attr('role')) {
$(this).after("<span class=\"closeSpan\" style=\"color:black;font-weight:bold;font-family:sans-serif;font-size:small;background-color:yellow;outline:orange 2px dashed;margin:0 2px; padding:2px;speak:literal-punctuation;\">❓role=\""+$(this).attr('role')+"\"</span>");