Skip to main content

Progressive enhancement

rc-webcomponents components enhance native HTML instead of replacing it. Where a native element can own forms, labels, focus, keyboard behavior, or accessibility semantics, the component keeps that native element connected and builds additional behavior around it.

Native children stay authoritative

Form-control wrappers require the consumer to provide the native child:

<rc-select>
<select name="status">
<option>Draft</option>
<option>Published</option>
</select>
</rc-select>

The native element remains in the DOM after upgrade. That preserves:

  • form submission through name and value
  • native label association
  • pre-upgrade interaction when JavaScript is slow or unavailable
  • familiar browser behavior for assistive technology

Enhancement is additive

The custom element adds coordinated state, ARIA where native semantics are not enough, richer keyboard handling, and optional styling hooks. It does not remove the underlying browser capability.

This rule applies throughout the docs demos. Inspect any demo in its default theme mode and you should see the component as a small enhancement over native browser controls, not as a framework-owned replacement.