diff --git a/src/core/title.js b/src/core/title.js
index 15ef44b683..d94043e73a 100644
--- a/src/core/title.js
+++ b/src/core/title.js
@@ -60,8 +60,12 @@ function setDocumentTitle(conf, h1Elem) {
if (!h1Elem.isConnected) {
h1Elem.textContent = document.title || `${l10n.default_title}`;
}
-
- let documentTitle = norm(h1Elem.textContent);
+ // We replace ":
" with ":", and "
" with "-", as appropriate.
+ const tempElem = document.createElement("h1");
+ tempElem.innerHTML = h1Elem.innerHTML
+ .replace(/:
/g, ": ")
+ .replace(/
/g, " - ");
+ let documentTitle = norm(tempElem.textContent);
if (conf.isPreview && conf.prNumber) {
const prUrl = conf.prUrl || `${conf.github.repoURL}pull/${conf.prNumber}`;
diff --git a/tests/spec/w3c/headers-spec.js b/tests/spec/w3c/headers-spec.js
index fafd151eea..c305438802 100644
--- a/tests/spec/w3c/headers-spec.js
+++ b/tests/spec/w3c/headers-spec.js
@@ -722,6 +722,18 @@ describe("W3C — Headers", () => {
expect(h1).toBeTruthy();
expect(h1.textContent.trim()).toBe("override!!!");
});
+
+ it("handles special case of localized spec title by doing replacement of
elements", async () => {
+ const body = `
+