Native Controls vs. Custom Rebuilds
Discussions about form controls often focus on which widget to use—radio buttons for single selection, checkboxes for multiple—but rarely on how those controls are built. That technical choice has real UX consequences. When the native HTML elements are an option, they usually should be used, because they ship with accessibility and keyboard behavior that is easy to overlook when a control is recreated from scratch.
The most common motivation for a custom rebuild is styling. But browser support for styling native form controls has improved significantly. Radios and checkboxes now offer considerable flexibility with modern CSS features. The outer appearance of <select> elements can be styled well, and even the dropdown list itself can be manipulated with some creative CSS.
Even without custom styles, the native elements cover the core interaction patterns. For choosing one option from a set, <input type="radio"> is functionally equivalent to a <select>. For choosing multiple options, <input type="checkbox"> matches the behavior of <select multiple>. The decision between these two approaches comes down to layout constraints and the desired interaction experience for the specific context.



