Disabling focus outline without breaking accessibility. This library will only disable the focus outline when the user is using his mouse to navigate your web page. Once a users starts using his keyboard the outline is activated again resulting in the best of both worlds, visually and accessibility wise.
This library supports both AMD and CommonJS module loading and it falls back
to a global smartOutline
object.
// use RequireJS
var smartOutline = require('smartOutline');
// ES6
import smartOutline from 'smartOutline';
// Load via script tag
<script src="https://cdn.rawgit.com/ambassify/smart-outline/master/main.js"></script>
smartOutline.init();
smartOutline.init({ domId: 'my-custom-id' });
Execute following command:
npm run serve
and navigate to http://127.0.0.1:7000
.
npm test
You can also view the online QUnit test page.
Option | Type | Description |
---|---|---|
domId | string |
ID that is assigned to the style element that gets injected in the DOM |
hideFocusCSS | string |
Overwrite the default CSS to hide the focus outline when a user is using the mouse |
nonce | string |
Add a nonce attribute to the injected style element for CSP enabled sites |
Method | Return | Description |
---|---|---|
.init() | HTMLElement |
Initialize the smart outline module |
.isKeyboardUser() | boolean |
Return true if the current user is a keyboard user |
.isEnabled() | boolean |
Check if smart outline is active |
.destroy() | null |
Disable smart outline by remove injected style element and all event listeners |
- Chrome
- Firefox
- Safari
- Opera
- IE 9+
- Edge
If you have some issue or code you would like to add, feel free to open a Pull Request or Issue and we will look into it as soon as we can.
We are releasing this under a MIT License.
If you would like to know more about us, be sure to have a look at our website, or our Twitter accounts Ambassify, Sitebase, JorgenEvens