From ee9223a53876985b172f2ba86994ec8bd6939889 Mon Sep 17 00:00:00 2001 From: Pierre-Anthony Lemieux Date: Thu, 17 Sep 2026 10:17:18 -0700 Subject: [PATCH] Remove deprecated ruby elements. --- src/main/js/html.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/main/js/html.js b/src/main/js/html.js index 9a62ac70..17d12c45 100755 --- a/src/main/js/html.js +++ b/src/main/js/html.js @@ -213,11 +213,12 @@ function processElement(context, dom_parent, isd_element, isd_parent) { } else if (isd_element.styleAttrs[byName.ruby.qname] === "baseContainer") { - e = document.createElement("rbc"); + e = document.createElement("span"); // rbc element is deprecated in HTML } else if (isd_element.styleAttrs[byName.ruby.qname] === "textContainer") { - e = document.createElement("rtc"); + e = document.createElement("span"); // rtc element is deprecated in HTML + e.style.display = "ruby-text-container"; } else if (isd_element.styleAttrs[byName.ruby.qname] === "delimiter") { @@ -649,8 +650,6 @@ function getSpanAncestorColor(element, ancestorList, isAncestor) { if (element.parentElement.nodeName === "SPAN" || element.parentElement.nodeName === "RUBY" || - element.parentElement.nodeName === "RBC" || - element.parentElement.nodeName === "RTC" || element.parentElement.nodeName === "RT") { return getSpanAncestorColor(element.parentElement, ancestorList, true); @@ -901,12 +900,14 @@ function applyRubyReserve(lineList, context) { if (context.rubyReserve[0] === "both" || (context.rubyReserve[0] === "outside" && lineList.length == 1)) { - rt1 = document.createElement("rtc"); + rt1 = document.createElement("span"); // rtc element is deprecated in HTML + rt1.style.display = "ruby-text-container"; rt1.style[RUBYPOSITION_PROP] = RUBYPOSITION_ISWK ? "after" : "under"; rt1.textContent = "\u200B"; rt1.style.fontSize = fs; - rt2 = document.createElement("rtc"); + rt2 = document.createElement("span"); // rtc element is deprecated in HTML + rt2.style.display = "ruby-text-container"; rt2.style[RUBYPOSITION_PROP] = RUBYPOSITION_ISWK ? "before" : "over"; rt2.textContent = "\u200B"; rt2.style.fontSize = fs; @@ -916,7 +917,8 @@ function applyRubyReserve(lineList, context) { } else { - rt1 = document.createElement("rtc"); + rt1 = document.createElement("span"); // rtc element is deprecated in HTML + rt1.style.display = "ruby-text-container"; rt1.textContent = "\u200B"; rt1.style.fontSize = fs; @@ -1111,7 +1113,7 @@ function rect2edges(rect, context) { function constructLineList(context, element, llist, bgcolor) { - if (element.localName === "rt" || element.localName === "rtc") { + if (element.localName === "rt" || element.style.display === "ruby-text-container") { /* skip ruby annotations */ @@ -1123,7 +1125,7 @@ function constructLineList(context, element, llist, bgcolor) { if (element.childElementCount === 0) { - if (element.localName === "span" || element.localName === "rb") { + if (element.localName === "span") { const r = element.getBoundingClientRect(); @@ -1203,7 +1205,7 @@ function constructLineList(context, element, llist, bgcolor) { constructLineList(context, child, llist, curbgcolor); - if (child.localName === "ruby" || child.localName === "rtc") { + if (child.localName === "ruby" || child.style.display === "ruby-text-container") { /* remember non-empty ruby and rtc elements so that tts:rubyPosition can be applied */