Evologics / confluence

// ==UserScript==
// @name         confluence
// @namespace    msg
// @description  Script, dass fehlende Aria Label im Confluence hinzufuegt oder passend ersetzt
// @include      https://*.david-software.de/*
// @license		 MIT
// ==/UserScript==

// ==OpenUserJS==
// @author Evologics
// ==/OpenUserJS==

// EventListener, der bei jedem Click auf ein Objekt auf der Website auf unten stehende Styleklassen untersucht
window.addEventListener("click", function() {
    // Fuegt bei tags mit class-Attribut "template-description" den Inhalt der Tags (den Text) als aria-label ein. Dies ist der Inhalt der listitems
var attToChange = document.getElementsByClassName('template-description');
    for(i = 0; i < attToChange.length; i++){
    divToChange = attToChange[i];
    divToChange.setAttribute("aria-label", divToChange.textContent);
    }
    // Fuegt bei tags mit class-Attribut "template-name" den Inhalt der Tags (den Text) als aria-label ein. Dies sind die Ueberschriften der listitems
    attToChange = document.getElementsByClassName('template-name');
    for(i = 0; i < attToChange.length; i++){
    divToChange = attToChange[i];
    divToChange.setAttribute("aria-label", divToChange.textContent);
    }
    // Fuegt in jedes Listitem selbst (class.Attribut "template") das role und tabindex Attribut hinzu, sodass die Elemente z.B. per Tab ausgewaehlt und benutzt werden koennen
    attToChange = document.getElementsByClassName('template');
    for(i = 0; i < attToChange.length; i++){
    divToChange = attToChange[i];
    divToChange.setAttribute("role", "button");
    divToChange.setAttribute("tabindex", "100");
    }
    // Aendert das aria-hidden Attribut des gesamten Popup Dialogs auf false, damit die aria Funktionalitaet ueberhaupt genutzt werden kann innerhalb der Liste
    attToChange = document.getElementsByClassName('aui-popup aui-dialog');
    for(i = 0; i < attToChange.length; i++){
    divToChange = attToChange[i];
    divToChange.setAttribute("aria-hidden", "false");
    }
}
);