Utente:Ruthven/De-duplicateAccessKeys.js
Notarella: Aroppo pubbreca putisse necessità 'e pulezzà 'a caché d' 'o navigatóre pe vedé 'e cagnamienti.
- Firefox / Safari: Sprémme 'o buttóne maiuscole e ffà clic ncopp'a Recarreca, o pure spremme Ctrl-F5 o Ctrl-R (⌘-R ncopp'a Mac)
- Google Chrome: spremme Ctrl-Shift-R (⌘-Shift-R ncopp'a nu Mac)
- Internet Explorer/edge: Spremme 'o buttóne Ctrl pe' tramente ca faie click ncopp'a Refresh, o pure spremmere Ctrl-F5
- Opera: Vaje addò 'o Menu → Mpustaziune (Opera → Mpustaziune ncopp' 'o Mac) e po' ncopp'a Privacy & sicurezza → Pulezza date d' 'o browser → Immaggene e file d' 'a cache.
// from https://phabricator.wikimedia.org/T336211
// Author: Jdlrobson
// Date: May 9 2023, 12:29 AM
var isVisible = ( node ) => node.offsetParent === null;
const activeKey = {};
function updateAccessKeys() {
accessKeyNodes.forEach( ( node ) => {
const key = node.dataset.accessKey;
if ( !isVisible( node ) ) {
// do we need to remove?
if ( activeKey[ key ] === node ) {
activeKey[ key ] = null;
node.removeAttribute( 'accesskey' );
}
} else if ( !activeKey[ key ] ) {
// do we need to add ?
activeKey[ key ] = node;
node.setAttribute( 'accesskey', key );
}
} );
}
const accessKeyNodes = Array.from(document.querySelectorAll( '[accesskey]') );
accessKeyNodes.forEach((node) => {
const key = node.getAttribute( 'accesskey' );
node.dataset.accessKey = key;
if ( isVisible( node) && !activeKey[ key ] ) {
activeKey[key] = node;
} else {
node.removeAttribute( 'accesskey' );
}
} );
const belowDesktopMedia = window.matchMedia( '(max-width: 999px)' );
belowDesktopMedia.onchange = () => {
updateAccessKeys();
};