User:Proteins/checkALTtext.js

//

// Check whether alt text is specified for all images on a page

//

// To use this script, add "importScript('User:Proteins/checkALTtext.js');" to your monobook.js subpage

// under your user page, as you can see at User:Proteins/monobook.js

function checkAltText() {

var alt_text = "";

var alert_string = "";

var error_string = "";

var temp_image;

var parent_node;

var grandparent_node;

var num_pixels = 0;

var image_index = 0;

var num_raw_images = 0;

var num_icon_images = 0;

var num_icon_images_missing_alt_text = 0;

var num_nonicon_images = 0;

var num_nonicon_images_missing_alt_text = 0;

var icon_percentage = 0.0;

var nonicon_percentage = 0.0;

// Loop over the images

num_icon_images = 0;

num_icon_images_missing_alt_text = 0;

num_nonicon_images = 0;

num_nonicon_images_missing_alt_text = 0;

num_raw_images = document.images.length;

alert_string = "This document has " + num_raw_images + " images.\n\n";

// window.alert(alert_string);

for (image_index=0; image_index

alt_text = "";

temp_image = document.images[image_index];

if (!temp_image) { continue; }

alt_text = temp_image.alt;

num_pixels = temp_image.width * temp_image.height;

if (temp_image.src.match(/Replace_this_image_male\.svg/)) { continue; }

if (temp_image.src.match(/Replace_this_image_female\.svg/)) { continue; }

if (num_pixels > 5000) {

num_nonicon_images++;

if (!alt_text) {

num_nonicon_images_missing_alt_text++;

temp_image.src = "";

}

continue;

}

num_icon_images++;

if (!alt_text) {

num_icon_images_missing_alt_text++;

temp_image.src = "";

}

} // closes loop over the images

icon_percentage = 0.0;

nonicon_percentage = 0.0;

if (num_nonicon_images > 0) {

nonicon_percentage = (100.0 * num_nonicon_images_missing_alt_text) / num_nonicon_images;

nonicon_percentage = Math.round(nonicon_percentage);

alert_string += num_nonicon_images_missing_alt_text + " of " + num_nonicon_images + " normal images ";

if (num_nonicon_images_missing_alt_text == 1) { alert_string += "is"; } else { alert_string += "are";}

alert_string += " missing alt text (" + nonicon_percentage + "%).\n\n";

}

if (num_icon_images > 0) {

icon_percentage = (100.0 * num_icon_images_missing_alt_text) / num_icon_images;

icon_percentage = Math.round(icon_percentage);

alert_string += num_icon_images_missing_alt_text + " of " + num_icon_images + " small images ";

if (num_icon_images_missing_alt_text == 1) { alert_string += "is"; } else { alert_string += "are";}

alert_string += " missing alt text (" + icon_percentage + "%).\n";

alert_string += "Small images are defined as those having fewer than 5000 pixels.\n\n";

}

window.alert(alert_string);

} // closes function checkAltText()

$(function () {

mw.util.addPortletLink('p-cactions', 'javascript:checkAltText()', 'alt', 'ca-alttext', 'Check images for alt text', , );

});

//