Details
-
Type: Improvement
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 4.0
-
Fix Version/s: EE-4.0.0.GA, 4.1
-
Component/s: ACE-Components, MOBI-Components
-
Labels:None
-
Environment:ICEfaces 4 ACE and MOBI Components
-
Assignee Priority:P1
Description
Currently, HTML5 passthrough attributes are being rendered out into the outer-most/first rendered DOM element rendered by the component. This appears to be an automatic rendering behaviour done by JSF 2.2.
Unfortunately, this results in none-operative pass-through attributes as the ACE and MOBI components typically use multiple levels of elements in their rendering, including a top-level SPAN or DIV that surrounds the component. Thus, the pass-through attributes are ending up on the SPAN or DIV and not targeted to the functional input or button elements where they would be functional.
This JIRA is to make whatever changes are necessary in the ACE and MOBI components to have the pass-through attributes rendered onto the logical functional input element rendered by each component.
Unfortunately, this results in none-operative pass-through attributes as the ACE and MOBI components typically use multiple levels of elements in their rendering, including a top-level SPAN or DIV that surrounds the component. Thus, the pass-through attributes are ending up on the SPAN or DIV and not targeted to the functional input or button elements where they would be functional.
This JIRA is to make whatever changes are necessary in the ACE and MOBI components to have the pass-through attributes rendered onto the logical functional input element rendered by each component.
Issue Links
- blocks
-
ICE-10434 Deprecate ACE component attributes that overlap with HTML5 passthrough attributes
- Closed
Example A (ace:textAreaEntry w/ p:placeholder="placeholder")
In this scenario, the "p:placeholder" attribute is being picked up by both the JSF passthrough attribute handler, which is adding it to the outer SPAN element, and also by the ace:textAreaEntry component itself (which has a "placeholder" attribute), which renders it onto the TEXTAREA element. It appears that the component ignores any namespace prefix on the attribute name and simply processes it as it's own attribute, whether or not a valid namespace prefix exists in front of it.
Example B (ace:textAreaEntry w/ placeholder="placeholder")
Here we see the component processing the attribute as it's own, which is the expected behaviour in this scenario.