Inconsistent Handling of Custom Element Attributes
usabilityActiveStableReact treats HTML attributes differently for native and custom elements, leading to bugs and runtime errors.
Score Breakdown
Heuristic ranking from public discussion signals — not a validated prediction of commercial opportunity, demand, or willingness to pay.
Composite 63/100 (High, unvalidated). Top driver: Severity (25% weight, 20 pts).
Heuristic only — often urgency map or random scaffolding on ingest, not measured mention frequency. Maps to XPS relevance (with market size).
LLM/mock judgment of intensity from title/summary text — not ops or ticket data. Maps to XPS quality (with willingness to pay).
LLM/mock purchase-intent guess from text — not invoices, surveys, or paid seats. Maps to XPS quality.
Heuristic/scaffold (often random or fixed on insert) — not a verified mention trajectory. Maps to XPS novelty.
Heuristic/scaffold (often random or fixed) — not TAM research. Maps to XPS relevance (with frequency).
Catalog notes (not predictive analysis)
Inconsistent Handling of Custom Element Attributes (usability). Catalog heuristic opportunity score: 63/100 — a chosen formula over discussion-signal facets, not evidence of demand, conversion, or willingness to pay. Treat as browsing rank, not a commercial prediction.
React treats HTML attributes differently for native and custom elements, leading to bugs and runtime errors.
Source Examples
“Bug: React Handles Native Attributes Incorrectly for Custom Elements, Causing Runtime Errors The common/global HTML attributes are treated differently between native elements and Custom Elements. For example, `<input aria-invalid={true}>` in React produces `<input aria-invalid="true">` in the HTML. But `<custom-element aria-invalid={true}>` in React produces `<custom-element aria-invalid>` in the HTML. This leads to an inconsistent and bug-prone DX. In some cases, it also results in runtime errors. Relates to: #32251 **React Version**: 19.1.1 ## Steps To Reproduce #### For the `form` Attribute 1. Create a form-associated Custom Element 2. Define a `form` _getter_ on it (similar to native form controls) 3. In React, attempt to point the Custom Element's `form` attribute to a specific `<form>` element #### For the `aria-invalid` Attribute 1. Create a Custom Element 2. In React, set the Custom Element's `aria-invalid` attribute to `true` Example Reproduction: https://stackblitz.com/edit/react-custom-elements-global-attrs?file=src%2FApp.tsx,index.html&terminal=dev ## The current behavior #### For the `form` Attribute An error is thrown at runtime, because React tries to set a `getter` instead of altering the form `attribute` (which is what happens for native form controls). #### For the `aria-invalid` Attribute The attribute is set to an empty string (`""`) as if it were a literal [boolean attribute](https://developer.mozilla.org/en-US/docs/Glossary/Boolean/HTML). ## The expected behavior #### For the `form` Attribute An error should not be thrown, and React should not attempt to set a JS Property. Instead, React should treat the attribute the same way it does for native form controls, setting the attribute only. #### For the `aria-invalid` Attribute The attribute should be treated the same way as it is for other native elements: `aria-invalid={true}` should become `aria-invalid="true"` and `aria-invalid={false}` should become `aria-invalid="false"`. The overall expectation beyond these 2 things is that for any attribute in the set of "common/native attributes", React properly updates attributes instead of JS Properties for Custom Elements and native `HTMLElement`s alike, in a consistent manner.”
Competitive Landscape
- Existing solutions are either too expensive or too limited
- Most competitors target enterprise, leaving mid-market underserved
- Community scripts and manual processes are the primary alternative
Recommended Next Steps
- ✓Validate pain intensity with 5-10 target customer interviews
- ✓Build minimal viable solution addressing the core workflow
- ✓Test pricing with early adopters from community forums
Related Pain Points
Target Customers
- IT teams at mid-size organizations (100-2000 employees)
- MSPs and consultants managing multiple client environments
- Teams without dedicated specialist staff for this domain
Monetization Ideas
- 1SaaS subscription model ($99-$499/month depending on scale)
- 2Usage-based pricing aligned with value delivered
- 3Freemium tier to drive adoption and prove value