Skip to main content

Supported HTML

lui supports 96 HTML tags with typed element structs. Unknown tags are silently dropped (subtree discarded).

Fully Supported

ElementNotes
html, bodyDocument root; body also used as synthetic wrapper for multi-root docs
div, spanGeneric block/inline containers
pParagraph with auto-close handling
h1h6Headings with UA font-size/weight/margin
prePreformatted text, monospace
blockquote, addressBlock content with UA styles
hrHorizontal rule, void element
brForced line break, void element
wbrWord-break opportunity
header, nav, main, section, article, aside, footerSectioning content
aInline anchor, focusable with href
strong, bBold via CSS
em, iItalic via CSS
u, ins, s, delUnderline/strikethrough via CSS
small, markSmaller text / highlight
code, kbd, sampMonospace
cite, dfn, varItalic phrasing
abbrAbbreviation with dotted underline
sub, supSubscript/superscript
time, dataPhrasing with datetime/value
bdi, bdoBidi isolation/override
ul, ol, liLists with basic marker support
dl, dt, ddDescription lists
labelForm label
styleInline stylesheet (collected by cascade)
templateInert content container

Partially Supported

ElementWhat WorksGaps
imgLoads/renders from src, srcset; uses intrinsic dimensionsImage maps, full <picture> source selection
tableFull table layout: table/table-row-group/table-row/table-cell/table-caption display, colspan/rowspan, column distribution, border-spacingBorder-collapse limited
tr, td, thTable row/cell layout, colspan/rowspan
thead, tbody, tfoottable-header-group/row-group/footer-group
colgroup, colParsed with spanColumn styling not propagated
inputSee Forms and Inputs for type breakdownVaries by type
textareaMultiline editing, placeholder, resize, form data collection
buttonFocusable, styled as button, submit triggers form submission
select, optionParsed, styledNo popup list
formParsed with attributesNo submission/validation
fieldset, legendBlock layout, borderLimited native behavior
details, summaryParsedNo toggle behavior
dialogParsed with openNo modal/top-layer
video, audioParsed with media attributesNo playback
svgRasterized as replaced elementLimited nested SVG
ruby, rt, rpRuby displayLimited layout
canvas, meter, progressParsedNo native rendering

Input Type Support

TypeLevelNotes
text, passwordFullEditing, placeholder, caret, selection, masking
checkbox, radioFullClick toggle, native paint (checkmark/dot), accent-color
rangeFullTrack+thumb, min/max/step, drag adjust
colorFullSwatch + full color picker overlay
date, datetime-localFullSegmented editing, locale formatting, calendar picker
fileFullNative file dialog (rfd), filenames display
submit, reset, buttonFullButton styling, static
hiddenFulldisplay: none
email, number, search, tel, urlPartialLike text, no validation
time, week, monthPartialLike text, no picker
imagePartialLike text, no image submit

Parsed Only (no runtime behavior)

head, title, meta, link, script (JS out of scope), slot, track, source, noscript, datalist, output

Not Supported (dropped)

figure, figcaption, hgroup, menu, search, q, area, base, embed, map, object, math