Skip to content

Removal of XSLT from HTML living standard #1287

@girst

Description

@girst

Specification title

Should we remove XSLT from the web platform?

Specification or proposal URL (if available)

whatwg/html#11523

Explainer URL (if available)

No response

Proposal author(s)

No response

MDN URL

No response

Caniuse.com URL

No response

Bugzilla URL

https://bugzilla.mozilla.org/show_bug.cgi?id=1990759

Mozillians who can provide input

No response

WebKit standards-position

No response

Other information

The recent proposal from Google to remove XSLT from the HTML living specification has gathered overwhelmingly negative sentiment among regular users of the web.

I can see that at least two Mozillians already responded, but it is unclear to me if these comments reflect their personal stance or Mozilla's. Due to the expected and apparently just accepted breakage in combination with a lack of viable alternatives for some use-cases, I would like to request Mozilla's official stance on this issue.

Thank you!

Activity

zcorpan

zcorpan commented on Aug 27, 2025

@zcorpan
Member

Our position is that it would be good for the long-term health of the web platform and good for user security to remove XSLT, and we support Chromium's effort to find out if it would be web compatible to remove support1. If it turns out that it's not possible to remove support, then we think browsers should make an effort to improve the fundamental security properties of XSLT even at the cost of performance.

While it's important to not break existing web content, it's also important to prevent security vulnerabilities. XSLT has been in maintenance mode in browsers and has been an ongoing source of security issues. Features and technology are sometimes removed from browsers for this reason, even when doing so breaks some existing content. Examples: Mutation Events, window.showModalDialog(), keygen, plugins. The usage of XSLT is lower than that of Mutation Events at the time of their removal, and Flash was very commonly used.

If it turns out not to be possible to remove the feature, weโ€™d like to replace our current implementation. The main requirements would be compatibility with existing web content, addressing memory safety security issues, and not regressing performance on non-XSLT content. Weโ€™ve seen some interest in sandboxing libxslt, and if something with that shape satisfied our normal production requirements we would ship it.

Footnotes

  1. Some things can be done to continue to support content that relies on XSLT. Some content can use a polyfill (at least for XSLTProcessor(), maybe harder for declarative xml-stylesheet in top-level browsing contexts); we could offer a reverse origin trial that sites can opt into; we could have an enterprise policy to continue support. However, these mitigations will likely not address all cases, e.g. managing devices on the user's local network might depend on XSLT, and we don't yet have data on how common this or similar scenarios are. โ†ฉ

moved this from Unscreened to Position is proposed in standards-positions reviewon Aug 27, 2025
girst

girst commented on Aug 27, 2025

@girst
Author
changed the title [-]Requesting Mozilla's position on removal of XSLT from HTML living standard[/-] [+]Removal of XSLT from HTML living standard[/+] on Sep 25, 2025
sjehuda

sjehuda commented on Nov 3, 2025

@sjehuda

Law firms

Law firms here extensively utilize XSLT, and it is no wonder, because the contractors would rather utilize standards over and over, instead of hiring new developers of new nich in Ruby, Python, Lua, et cetera.

The most interesting thing, is that since, for whatever reason, FF had its XSLT broken, a couple of law firms which I am currently associated with, with overhaul 560 employees, do not have internet browsers (HTTP/HTML) installed, only Email, XMPP, and our in-house XSLT software to transform documents, which is weird to me.

Standards

As Information Architect Mr. Liam Quin states.

Sometimes standards succeed and sometimes not, but open architectures and standard formats and protocols protect your investment, making it easier to migrate when needed, and where the formats become popular, making skills, expert knowledge and software easier to acquire, reducing costs.

โ€“ Liam R. E. Quin

And he is correct!

XSLT beyond XSLT 1.0

Hence, I think that we should upgrade to XSLT 2.0, XSLT 3.0, and provide support for the upcoming XSLT 4.0.

XSLT 1.0

It was at an extended vaccation in Karpathos, Greece from the law firm which I was associated of at the time, and it was when I have experimented with the XSLTProcessor of yours, because your browsers were my routine browsers.

Interestingly, the malfunctioning XSLT implementations of yours have forced me to use Falkon and Otter Browser, in order to be able to experiment with ECMAScript module XSLTProcessor, and XSLT in general.

So, I think that you should fix your implementation of XSLT 1.0, both the built-in interpreter which does not appear to fail to execute directive "disable-output-escaping", which used to work, and also you should improve your implementation of the ECMAScript module "XSLTProcessor".

I have created a Greasemonkey script which utilizes XSLTProcessor, yet I had to substitute it with ECMAScript module "DOMParser", because your ECMAScropt module "XSLTProcessor" failed to execute upon that task.

Older version

https://openuserjs.org/scripts/sjehuda/Newspaper_(XMLHttpRequest)

Newer version

https://openuserjs.org/scripts/sjehuda/Newspaper


Once FF finally supports XSLT 3.0 at the very least, I will not be with Falkon, which is the closest to FF, as I am, today.


For record, to compensate on the non-functioning "disable-output-escaping" of "the engine gecko", add attribute "type" with value "html" or "xhtml" and utilize this code.

window.addEventListener('load', function() {
  // Scan for elements with indicators of HTML content.
  for (element of document.querySelectorAll("[type*='html']")) {
    // Check whether content has HTML elements.
    if (element.children.length < 1) {
      // Retrieve text content.
      plainContent = element.textContent;
      // Instatiate an HTML/XML object parser.
      domParser = new DOMParser();
      // Generate an HTML document.
      processedContent = domParser.parseFromString(plainContent, 'text/html');
      // Replace content by the new HTML document.
      element.innerHTML = processedContent.body.innerHTML
    }
  }
});
zcorpan

zcorpan commented on Nov 4, 2025

@zcorpan
Member

This is not the correct venue to talk about your law firm, or to report bugs or feature requests in Firefox.

Further off-topic comments will result in the issue being locked. Thank you for understanding.

robert-zaremba

robert-zaremba commented on Nov 10, 2025

@robert-zaremba

I think it is a correct venue - we are FF users and we share the concerns outlined in this issue

RokeJulianLockhart

RokeJulianLockhart commented on Nov 11, 2025

@RokeJulianLockhart

@zcorpan, I'd say that most of that message was indeed off-topic. However, I believe that the core of it was on-topic: that the author believes that instead of deprecate XSLT, implement its later revisions. I did struggle to follow it, though.

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Position is proposed

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @zcorpan@robert-zaremba@girst@sjehuda@RokeJulianLockhart

        Issue actions

          Removal of XSLT from HTML living standard ยท Issue #1287 ยท mozilla/standards-positions