2017-10-25 12:32:33 +02:00
|
|
|
// based on http://www.paciellogroup.com/blog/2012/04/how-to-remove-css-outlines-in-an-accessible-manner/
|
|
|
|
|
function outlineFixer() {
|
|
|
|
|
let d: any = document;
|
|
|
|
|
|
2017-12-20 12:33:33 +01:00
|
|
|
var style_element = d.createElement('STYLE');
|
|
|
|
|
var dom_events = 'addEventListener' in d;
|
2017-10-25 12:32:33 +02:00
|
|
|
|
2017-12-19 16:06:54 +01:00
|
|
|
var add_event_listener = function(type, callback) {
|
2017-10-25 12:32:33 +02:00
|
|
|
// Basic cross-browser event handling
|
|
|
|
|
if (dom_events) {
|
|
|
|
|
d.addEventListener(type, callback);
|
|
|
|
|
} else {
|
2017-12-20 12:33:33 +01:00
|
|
|
d.attachEvent('on' + type, callback);
|
2017-10-25 12:32:33 +02:00
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
2017-12-19 16:06:54 +01:00
|
|
|
var set_css = function(css_text) {
|
2017-10-25 12:32:33 +02:00
|
|
|
// Handle setting of <style> element contents in IE8
|
2017-12-21 08:39:31 +01:00
|
|
|
!!style_element.styleSheet ? (style_element.styleSheet.cssText = css_text) : (style_element.innerHTML = css_text);
|
2017-10-25 12:32:33 +02:00
|
|
|
};
|
|
|
|
|
|
2017-12-20 12:33:33 +01:00
|
|
|
d.getElementsByTagName('HEAD')[0].appendChild(style_element);
|
2017-10-25 12:32:33 +02:00
|
|
|
|
|
|
|
|
// Using mousedown instead of mouseover, so that previously focused elements don't lose focus ring on mouse move
|
2017-12-20 12:33:33 +01:00
|
|
|
add_event_listener('mousedown', function() {
|
|
|
|
|
set_css(':focus{outline:0 !important}::-moz-focus-inner{border:0;}');
|
2017-10-25 12:32:33 +02:00
|
|
|
});
|
|
|
|
|
|
2017-12-20 12:33:33 +01:00
|
|
|
add_event_listener('keydown', function() {
|
|
|
|
|
set_css('');
|
2017-10-25 12:32:33 +02:00
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
outlineFixer();
|