NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Twitter Show Alt Text
// @namespace https://wuz.sh/
// @version 0.1
// @description See alt text on images on Twitter
// @author Wuz
// @match https://*.twitter.com/*
// @grant none
// @copyright 2021, wuz (https://openuserjs.org/users/wuz)
// @license MIT
// ==/UserScript==
(function() {
'use strict';
const targetNode = document.body;
const callback = () => {
const photos = Array.from(targetNode.querySelectorAll('[data-testid="tweetPhoto"]'));
photos.forEach((photo) => {
if(!photo.querySelector(".altDiv")) {
const img = photo.querySelector("img");
if(img.alt === 'Image') {
return;
}
const altDiv = document.createElement("div");
altDiv.classList = "altDiv r-1qd0xha";
altDiv.title = img.alt;
altDiv.style.background = 'rgba(0, 0, 0, 0.6)';
altDiv.style.color = "#fff";
altDiv.style.padding = '10px';
altDiv.style.display='grid';
altDiv.style.placeItems= 'center';
altDiv.appendChild(document.createTextNode(img.alt.slice(0, 47)+"..."));
photo.appendChild(altDiv);
console.log(altDiv);
}
});
};
const observer = new MutationObserver(callback);
observer.observe(targetNode, { subtree: true, childList: true });
})();