Skip to content
This repository was archived by the owner on Aug 29, 2025. It is now read-only.
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

Closed

Description

@rpkyle

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.

From @rpkyle:

  • 🚫 htmlBasefont: this HTML5 element is deprecated, but the component does not suit the specifications as written and does not work.

From @CanerIrfanoglu:

  • htmlListing: Deprecated. Example working.
  • htmlMarquee: Obsolete. Example working.
  • 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:
    Screen Shot 2019-07-30 at 5 11 45 PM Screen Shot 2019-07-30 at 5 12 15 PM
  • 🚫 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)

From @sacul-git:

  • 🚫 htmlScript: I did not successfully create a minimal htmlScript that actually works.
  • htmlShadow: This is deprecated, and I'm not sure how to show a meaningful example in the context of a Dash app.
  • htmlSlot: I'm not sure how to show a meaningful example in the context of a Dash app.
  • htmlSpacer: non-standard and obsolete
  • htmlTitle: Because an app's title is set through Dash$new(name = "title"), I'm not sure how to show a meaningful example of htmlTitle.
  • htmlTrack: Not sure how to use this within a Dash app with audio or video, and if there is a way, I'm not sure where I should source a vtt file from.

@alexcjohnson

Activity

  1. added this to the Dash v1.3.0 milestone on Aug 9, 2019
  2. rpkyle commented on Aug 9, 2019

    @rpkyle
    ContributorAuthor

    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

    @Marc-Andre-Rivet @alexcjohnson @wbrgss

  3. reopened this on Aug 9, 2019
  4. HammadTheOne commented on Jan 8, 2020

    @HammadTheOne
    Contributor

    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.

  5. rpkyle commented on Jan 8, 2020

    @rpkyle
    ContributorAuthor

    Following a discussion offline, we've made the decision to retain the above components. Closing this issue.

  6. removed their assignment
    on Dec 4, 2020
  7. mbauman commented on Dec 4, 2020

    @mbauman

    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.

  8. alexcjohnson commented on Dec 27, 2020

    @alexcjohnson
    Collaborator

    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.

  9. rpkyle commented on Jan 29, 2021

    @rpkyle
    ContributorAuthor

    Possibly relevant to plotly/dashR#243, since we may want to document within the package also.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions