hast-util-interactive

hast utility to check if a node is interactive

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
hast-util-interactive
3.0.09 months ago8 years agoMinified + gzip package size for hast-util-interactive in KB

Readme

hast-util-interactive
!Buildbuild-badgebuild !Coveragecoverage-badgecoverage !Downloadsdownloads-badgedownloads !Sizesize-badgesize !Sponsorssponsors-badgecollective !Backersbackers-badgecollective !Chatchat-badgechat
hast 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.shesmsh:
import {interactive} from 'https://esm.sh/hast-util-interactive@3'

In browsers with esm.shesmsh:
<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 identifier interactiveapi-interactive. There is no default export.

interactive(node)

Check if the given value is interactive contentspec.
Parameters
— node to check
Returns
Whether node is an Elementelement that is classified as interactive content (boolean).
The following elements are interactive:
  • a with href
  • audio or video with controls
  • img or object with useMap
  • input without hidden
  • 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

See contributing.mdcontributing in syntax-tree/.githubhealth for ways to get started. See support.mdsupport 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.

License

MITlicense © Titus Wormerauthor