TopGit tracks WICG/inert on GitHub. The project has 945 stars. Polyfill for the inert attribute and property.
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
The inert attribute/property allows web authors to mark parts of the DOM tree
as inert:
When a node is inert, then the user agent must act as if the node was absent
for the purposes of targeting user interaction events, may ignore the node for
the purposes of text search user interfaces (commonly known as "find in
page"), and may prevent the user from selecting text in that node.
Furthermore, a node which is inert should also be hidden from assistive
technology.
Details
Read the Explainer.
Read the Spec.
Try the Demo.
Give feedback!
Polyfill
Installation
npm install --save wicg-inert
We recommend only using versions of the polyfill that have been published to
npm, rather than cloning the repo and using the source directly. This helps
ensure the version you're using is stable and thoroughly tested.
This project provides two versions of the polyfill in package.json.
main: Points at dist/inert.js which is transpiled to ES3.
module: Points at dist/inert.esm.js which is transpiled to ES3.
If you do want to build from source, make sure you clone the latest tag!
Usage
1. Either import the polyfill, or add the script to your page
If you want to use inert with an older browser you'll need to include
additional polyfills for
Map,
Set,
Element.prototype.matches,
and Node.prototype.contains.
In accordance with the W3C's new polyfill
guidance,
the inert polyfill does not bundle other polyfills.
You can use a service like https://cdnjs.cloudflare.com/polyfill
to download only the polyfills needed by the current browser. Just add the
following line to the start of your page:
By default, this polyfill will dynamically insert some CSS, which requires the
style-src rule of your Content Security Policy to allow 'unsafe-inline'.
It is possible avoid doing so by including those rules from a CSS stylesheet, as
follows (the id property is used by the polyfill to know if it needs to
dynamically add the missing rules):
The polyfill attempts to provide a reasonable fidelity polyfill for the inertattribute, however please note:
It relies on mutation observers to detect the addition of the inert
attribute, and to detect dynamically added content within inert subtrees.
Testing for inert-ness in any way immediately after either type of mutation
will therefore give inconsistent results; please allow the current task to end
before relying on mutation-related changes to take effect, for example via
setTimeout(fn, 0) or Promise.resolve().
Example:
const newButton = document.createElement('button');
const inertContainer = document.querySelector('[inert]');
inertContainer.appendChild(newButton);
// Wait for the next microtask to allow mutation observers to react to the
// DOM change
Promise.resolve().then(() => {
expect(isUnfocusable(newButton)).to.equal(true);
});
Using the inertproperty, however, is synchronous.
The polyfill will be expensive, performance-wise, compared to a native inert
implementation, because it requires a fair amount of tree-walking. To mitigate
this, we recommend not using inert during performance sensitive actions
(like during animations or scrolling). Instead, wait till these events are
complete, or consider using
requestIdleCallback
to set inert.
Testing
Tests are written using ES5 syntax. This is to avoid needing to transpile them
for older browsers. There are a few modern features they rely upon, e.g.
Array.from and Promises. These are polyfilled for the tests using
https://cdnjs.cloudflare.com/polyfill. For a list of polyfilled features, check out
the polyfill section in karma.conf.js.
Big Thanks
Cross-browser Testing Platform and Open Source <3 Provided by Sauce Labs
The most recent commit recorded on WICG/inert was 2.0 years ago, based on the GitHub push timestamp. The repository has 83 forks — one of the better signals of community interest.
How many stars does WICG/inert have?
WICG/inert has 945 GitHub stars — refresh the page for the live number, or check github.com/WICG/inert. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is WICG/inert open source?
TopGit's metadata for WICG/inert does not record a license. Most public repositories on GitHub ARE open source, but the exact terms vary — verify by opening the LICENSE file directly.
What is WICG/inert?
WICG/inert (WICG/inert) is a JavaScript project on GitHub. From the project's own README: Polyfill for the inert attribute and property.
What language is WICG/inert written in?
WICG/inert is written primarily in JavaScript. GitHub's language field is based on the largest share of bytes in the default branch.
Where do I read more about WICG/inert?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/WICG/inert is the definitive source.
Read full README in the tab above.
Curious whether inert is right for you?
Let ChatGPT, Claude, or Perplexity look into it — click below and see what AI actually says about inert.