You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Aug 29, 2025. It is now read-only.
Repository navigation
This repository was archived by the owner on Aug 29, 2025. It is now read-only.
Several components have limited or no functionality in current browsers #129
We recently prepared examples for dashHtmlComponents in advance of submission to CRAN.
As a result, several components were identified as non-functional or obsolete by those writing up the examples; this is most likely the result of browsers deprecating previously valid HTML elements.
A list of these follows below. 🚫 indicates a component which is suspected not to function anymore.
htmlMeta: Example added but injects <meta> tag to <body>. Not sure if this is acceptable.
htmlMultiCol: Obsolete. Example added (requires col arg and Netscape 4 to work).
🚫 htmlNextid: Needs to be injected in the <head> and not supported by any browser.
🚫 htmlObjectEl: Example created but not working. object tag has data attribute but htmlObjectEl does not. There is an issue created earlier.
htmlOptgroup: Example working. However, labels are blank. Noted that optgroup should have label argument. Below is how it looks vs. how it is supposed to look:
🚫 htmlOutput: Need oninput attribute of htmlForm & htmlInput(does not exist) to create a working example.
🚫 htmlParam: Example added but not working. Depends on data attribute of htmlObjectEl
🚫 htmlPlaintext: Obsolete. Example added but does not work as intended (should render rest of html as plain-text)
I motion to deprecate the following components in the next dash-html-components and dashHtmlComponents releases, as they are no longer functional/supported in modern browsers, and propose to eventually remove these altogether:
htmlBasefont: only works with Microsoft browsers, see here
htmlBlink: not supported by any widely used modern browser, see here
htmlCommand: not supported by any widely used modern browser, see here
htmlElement: does not appear to be supported by widely used modern browsers, see here
htmlIsindex: not supported by any widely used modern browser, see here
htmlListing: not supported by any widely used modern browser, see here
htmlMarquee: not supported by any widely used modern browser, see here
htmlMulticol: not supported by any widely used modern browser, see here
htmlNextid: not supported by any widely used modern browser, see here
htmlShadow: not supported by any widely used modern browser, see here
htmlSpacer: not supported by any widely used modern browser, see here
htmlContent should also be removed if htmlShadow is being removed. It is used inside of Shadow DOM and is also deprecated and not supported by any widely used modern browser, see here.
I'd kindly ask for reconsidering here — I understand that the components are dynamically generated, but the fact that the documentation is also dynamically generated makes it seem like these are fully functional bits and bobs to put into a dash.
In particular, even though <script> is a very functional HTML element htmlScript will never work in a dash (as it currently stands) because browsers don't execute <script>s inserted in the way react does it (via innerHTML). Including it in the documentation only leads folks down dead ends. Either it should use a different insertion mechanism, or it should have a bright big warning in the docs, or it should be removed entirely.
I do agree we should keep these components around. script in particular has some other uses like storing data. Typically this is used for the back-end to pass data to the front end on page load, but one could imagine scenarios where this is useful when Dash is part of a larger app, to pass data between pieces of that app.
But @mbauman is right that we should document these limitations better. Reopening as a documentation issue.
Activity
rpkyle commentedon Aug 9, 2019
I motion to deprecate the following components in the next
dash-html-componentsanddashHtmlComponentsreleases, as they are no longer functional/supported in modern browsers, and propose to eventually remove these altogether:htmlBasefont: only works with Microsoft browsers, see herehtmlBlink: not supported by any widely used modern browser, see herehtmlCommand: not supported by any widely used modern browser, see herehtmlElement: does not appear to be supported by widely used modern browsers, see herehtmlIsindex: not supported by any widely used modern browser, see herehtmlListing: not supported by any widely used modern browser, see herehtmlMarquee: not supported by any widely used modern browser, see herehtmlMulticol: not supported by any widely used modern browser, see herehtmlNextid: not supported by any widely used modern browser, see herehtmlShadow: not supported by any widely used modern browser, see herehtmlSpacer: not supported by any widely used modern browser, see here@Marc-Andre-Rivet @alexcjohnson @wbrgss
HammadTheOne commentedon Jan 8, 2020
htmlContentshould also be removed ifhtmlShadowis being removed. It is used inside ofShadow DOMand is also deprecated and not supported by any widely used modern browser, see here.rpkyle commentedon Jan 8, 2020
Following a discussion offline, we've made the decision to retain the above components. Closing this issue.
mbauman commentedon Dec 4, 2020
I'd kindly ask for reconsidering here — I understand that the components are dynamically generated, but the fact that the documentation is also dynamically generated makes it seem like these are fully functional bits and bobs to put into a dash.
In particular, even though
<script>is a very functional HTML elementhtmlScriptwill never work in a dash (as it currently stands) because browsers don't execute<script>s inserted in the way react does it (via innerHTML). Including it in the documentation only leads folks down dead ends. Either it should use a different insertion mechanism, or it should have a bright big warning in the docs, or it should be removed entirely.alexcjohnson commentedon Dec 27, 2020
I do agree we should keep these components around.
scriptin particular has some other uses like storing data. Typically this is used for the back-end to pass data to the front end on page load, but one could imagine scenarios where this is useful when Dash is part of a larger app, to pass data between pieces of that app.But @mbauman is right that we should document these limitations better. Reopening as a documentation issue.
rpkyle commentedon Jan 29, 2021
Possibly relevant to plotly/dashR#243, since we may want to document within the package also.