hast-util-interactive
!Buildbuild-badgebuild
!Coveragecoverage-badgecoverage
!Downloadsdownloads-badgedownloads
!Sizesize-badgesize
!Sponsorssponsors-badgecollective
!Backersbackers-badgecollective
!Chatchat-badgechathast utility to check if a node is interactive contentspec.
Contents
* [`interactive(node)`](#interactivenode)
What is this?
This package is a small utility that checks if a node is interactive content according to HTML.When should I use this?
This utility is super niche, if you’re here you probably know what you’re looking for!Install
This package is ESM onlyesm. In Node.js (version 16+), install with npm:npm install hast-util-interactive
In Deno with
esm.sh
esmsh:import {interactive} from 'https://esm.sh/hast-util-interactive@3'
In browsers with
esm.sh
esmsh:<script type="module">
import {interactive} from 'https://esm.sh/hast-util-interactive@3?bundle'
</script>
Use
import {interactive} from 'hast-util-interactive'
interactive({
type: 'element',
tagName: 'a',
properties: {},
children: []
}) // => false
interactive({
type: 'element',
tagName: 'a',
properties: {href: '#alpha'},
children: []
}) // => true
interactive({
type: 'element',
tagName: 'video',
properties: {controls: true},
children: []
}) // => true
API
This package exports the identifierinteractive
api-interactive.
There is no default export.interactive(node)
Check if the given value is interactive contentspec.Parameters
— node to check
Returns
Whethernode
is an Element
element that is classified as interactive
content (boolean
).The following elements are interactive:
a
withhref
audio
orvideo
withcontrols
img
orobject
withuseMap
input
withouthidden
- any element with a
tabIndex
- the elements
button
,details
,embed
,iframe
,keygen
,label
,
`select`, and `textarea`
Types
This package is fully typed with TypeScript. It exports no additional types.Compatibility
Projects maintained by the unified collective are compatible with maintained versions of Node.js.When we cut a new major release, we drop support for unmaintained versions of Node. This means we try to keep the current release line,
hast-util-interactive@^3
,
compatible with Node.js 16.Security
hast-util-interactive
does not change the syntax tree so there are no openings
for cross-site scripting (XSS)xss attacks.Related
— check if a node is a (certain) element
— check if a node has a property
— check if a node is “Body OK” link element
— check if a node is a conditional comment
— check if a node is a CSS link element
— check if a node is a CSS style element
— check if a node is an embedded element
— check if a node is a heading element
— check if a node is a JavaScript script element
— check whether a node is labelable
— check if a node is phrasing content
— check if a node is a script-supporting element
— check if a node is a sectioning element
— check if a node is a transparent element
— check if a node is inter-element whitespace
Contribute
Seecontributing.md
contributing in syntax-tree/.github
health for
ways to get started.
See support.md
support for ways to get help.This project has a code of conductcoc. By interacting with this repository, organization, or community you agree to abide by its terms.