зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1791245 - More cleanup for the <mfenced> element. r=emilio
The <mfenced> element [1] is not part of MathML Core [2] or MathML AAM [3] and was removed in bug 1603773. It should be treated as an unknown MathML element, that is like an `<mrow>`. This commit performs some follow-up code cleanup: * Remove a11y mapping, instead map it like an mrow. * Remove obsolete deprecation message. * Don't include mfenced in the sanitizer's default element allow list. The spec [4] does not mention an explicit list. * Preference mathml.mfenced_element.disabled was removed, so no need to force it when running tests. * Tweak some code comments. [1] https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mfenced [2] https://w3c.github.io/mathml-core/#mathml-elements-and-attributes [3] https://w3c.github.io/mathml-aam/ [4] https://wicg.github.io/sanitizer-api Differential Revision: https://phabricator.services.mozilla.com/D157580
This commit is contained in:
Родитель
e1357847e5
Коммит
62d1893ea4
|
@ -31,9 +31,7 @@ MARKUPMAP(msqrt_, New_HyperText, roles::MATHML_SQUARE_ROOT)
|
||||||
|
|
||||||
MARKUPMAP(mroot_, New_HyperText, roles::MATHML_ROOT)
|
MARKUPMAP(mroot_, New_HyperText, roles::MATHML_ROOT)
|
||||||
|
|
||||||
MARKUPMAP(mfenced_, New_HyperText, roles::MATHML_FENCED,
|
MARKUPMAP(mfenced_, New_HyperText, roles::MATHML_ROW)
|
||||||
AttrFromDOM(close, close), AttrFromDOM(open, open),
|
|
||||||
AttrFromDOM(separators_, separators_))
|
|
||||||
|
|
||||||
MARKUPMAP(menclose_, New_HyperText, roles::MATHML_ENCLOSED,
|
MARKUPMAP(menclose_, New_HyperText, roles::MATHML_ENCLOSED,
|
||||||
AttrFromDOM(notation_, notation_))
|
AttrFromDOM(notation_, notation_))
|
||||||
|
|
|
@ -845,11 +845,6 @@ enum Role {
|
||||||
*/
|
*/
|
||||||
MATHML_ROOT = 141,
|
MATHML_ROOT = 141,
|
||||||
|
|
||||||
/**
|
|
||||||
* A MathML fenced element (mfenced in MathML).
|
|
||||||
*/
|
|
||||||
MATHML_FENCED = 142,
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A MathML enclosed element (menclose in MathML).
|
* A MathML enclosed element (menclose in MathML).
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1368,8 +1368,6 @@ ROLE(MATHML_OPERATOR,
|
||||||
// NS_MATHML_OPERATOR_SEPARATOR bits of nsOperatorFlags, but currently they
|
// NS_MATHML_OPERATOR_SEPARATOR bits of nsOperatorFlags, but currently they
|
||||||
// are only available from the MathML layout code. Hence we just fallback
|
// are only available from the MathML layout code. Hence we just fallback
|
||||||
// to subrole AXMathOperator for now.
|
// to subrole AXMathOperator for now.
|
||||||
// XXX bug 1175747 WebKit also creates anonymous operators for <mfenced>
|
|
||||||
// which have subroles AXMathSeparatorOperator and AXMathFenceOperator.
|
|
||||||
0,
|
0,
|
||||||
IA2_ROLE_UNKNOWN,
|
IA2_ROLE_UNKNOWN,
|
||||||
java::SessionAccessibility::CLASSNAME_VIEW,
|
java::SessionAccessibility::CLASSNAME_VIEW,
|
||||||
|
@ -1445,16 +1443,6 @@ ROLE(MATHML_ROOT,
|
||||||
java::SessionAccessibility::CLASSNAME_VIEW,
|
java::SessionAccessibility::CLASSNAME_VIEW,
|
||||||
eNoNameRule)
|
eNoNameRule)
|
||||||
|
|
||||||
ROLE(MATHML_FENCED,
|
|
||||||
"mathml fenced",
|
|
||||||
ATK_ROLE_SECTION,
|
|
||||||
NSAccessibilityGroupRole,
|
|
||||||
@"AXMathFenced", // XXX bug 1176970 This should be AXMathFence, but doing so without implementing the whole fence interface seems to make VoiceOver crash, so we present it as a row for now.
|
|
||||||
0,
|
|
||||||
IA2_ROLE_UNKNOWN,
|
|
||||||
java::SessionAccessibility::CLASSNAME_VIEW,
|
|
||||||
eNoNameRule)
|
|
||||||
|
|
||||||
ROLE(MATHML_ENCLOSED,
|
ROLE(MATHML_ENCLOSED,
|
||||||
"mathml enclosed",
|
"mathml enclosed",
|
||||||
ATK_ROLE_SECTION,
|
ATK_ROLE_SECTION,
|
||||||
|
|
|
@ -838,11 +838,6 @@ interface nsIAccessibleRole : nsISupports
|
||||||
*/
|
*/
|
||||||
const unsigned long ROLE_MATHML_ROOT = 141;
|
const unsigned long ROLE_MATHML_ROOT = 141;
|
||||||
|
|
||||||
/**
|
|
||||||
* A MathML fenced element (mfenced in MathML).
|
|
||||||
*/
|
|
||||||
const unsigned long ROLE_MATHML_FENCED = 142;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A MathML enclosed element (menclose in MathML).
|
* A MathML enclosed element (menclose in MathML).
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -140,11 +140,10 @@
|
||||||
testElm("mroot", obj);
|
testElm("mroot", obj);
|
||||||
|
|
||||||
// ////////////////////////////////////////////////////////////////////////
|
// ////////////////////////////////////////////////////////////////////////
|
||||||
// mfenced
|
// Deprecated mfenced element (treated as an mrow).
|
||||||
|
|
||||||
obj = {
|
obj = {
|
||||||
role: ROLE_MATHML_FENCED,
|
role: ROLE_MATHML_ROW,
|
||||||
attributes: { open: "]", close: "[", separators: "." },
|
|
||||||
};
|
};
|
||||||
testElm("mfenced", obj);
|
testElm("mfenced", obj);
|
||||||
|
|
||||||
|
|
|
@ -749,7 +749,6 @@ const nsStaticAtom* const kElementsMathML[] = {
|
||||||
nsGkAtoms::median_, // median
|
nsGkAtoms::median_, // median
|
||||||
nsGkAtoms::menclose_, // menclose
|
nsGkAtoms::menclose_, // menclose
|
||||||
nsGkAtoms::merror_, // merror
|
nsGkAtoms::merror_, // merror
|
||||||
nsGkAtoms::mfenced_, // mfenced
|
|
||||||
nsGkAtoms::mfrac_, // mfrac
|
nsGkAtoms::mfrac_, // mfrac
|
||||||
nsGkAtoms::mglyph_, // mglyph
|
nsGkAtoms::mglyph_, // mglyph
|
||||||
nsGkAtoms::mi_, // mi
|
nsGkAtoms::mi_, // mi
|
||||||
|
|
|
@ -378,8 +378,6 @@ MathML_DeprecatedMathSizeValueWarning=“small”, “normal” and “big” ar
|
||||||
# LOCALIZATION NOTE: Do not translate veryverythinmathspace, verythinmathspace,
|
# LOCALIZATION NOTE: Do not translate veryverythinmathspace, verythinmathspace,
|
||||||
# thinmathspace, mediummathspace, thickmathspace, verythickmathspace, veryverythickmathspace and MathML.
|
# thinmathspace, mediummathspace, thickmathspace, verythickmathspace, veryverythickmathspace and MathML.
|
||||||
MathML_DeprecatedMathSpaceValueWarning=“veryverythinmathspace”, “verythinmathspace”, “thinmathspace”, “mediummathspace”, “thickmathspace”, “verythickmathspace” and “veryverythickmathspace” are deprecated values for MathML lengths and will be removed at a future date.
|
MathML_DeprecatedMathSpaceValueWarning=“veryverythinmathspace”, “verythinmathspace”, “thinmathspace”, “mediummathspace”, “thickmathspace”, “verythickmathspace” and “veryverythickmathspace” are deprecated values for MathML lengths and will be removed at a future date.
|
||||||
# LOCALIZATION NOTE: Do not translate MathML or mfenced.
|
|
||||||
MathML_DeprecatedMfencedElement=MathML element mfenced is deprecated and will be removed at a future date.
|
|
||||||
# LOCALIZATION NOTE: Do not translate MathML, background, color, fontfamily, fontsize, fontstyle and fontweight.
|
# LOCALIZATION NOTE: Do not translate MathML, background, color, fontfamily, fontsize, fontstyle and fontweight.
|
||||||
MathML_DeprecatedStyleAttributeWarning=MathML attributes “background”, “color”, “fontfamily”, “fontsize”, “fontstyle” and “fontweight” are deprecated and will be removed at a future date.
|
MathML_DeprecatedStyleAttributeWarning=MathML attributes “background”, “color”, “fontfamily”, “fontsize”, “fontstyle” and “fontweight” are deprecated and will be removed at a future date.
|
||||||
# LOCALIZATION NOTE: Do not translate MathML and STIXGeneral. %S is a documentation URL.
|
# LOCALIZATION NOTE: Do not translate MathML and STIXGeneral. %S is a documentation URL.
|
||||||
|
|
|
@ -759,8 +759,8 @@ void nsMathMLChar::SetData(nsString& aData) {
|
||||||
static bool IsSizeOK(nscoord a, nscoord b, uint32_t aHint) {
|
static bool IsSizeOK(nscoord a, nscoord b, uint32_t aHint) {
|
||||||
// Normal: True if 'a' is around +/-10% of the target 'b' (10% is
|
// Normal: True if 'a' is around +/-10% of the target 'b' (10% is
|
||||||
// 1-DelimiterFactor). This often gives a chance to the base size to
|
// 1-DelimiterFactor). This often gives a chance to the base size to
|
||||||
// win, especially in the context of <mfenced> without tall elements
|
// win, especially in the context of sloppy markups without protective
|
||||||
// or in sloppy markups without protective <mrow></mrow>
|
// <mrow></mrow>
|
||||||
bool isNormal =
|
bool isNormal =
|
||||||
(aHint & NS_STRETCH_NORMAL) &&
|
(aHint & NS_STRETCH_NORMAL) &&
|
||||||
Abs<float>(a - b) < (1.0f - NS_MATHML_DELIMITER_FACTOR) * float(b);
|
Abs<float>(a - b) < (1.0f - NS_MATHML_DELIMITER_FACTOR) * float(b);
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
prefs: [mathml.scriptsizemultiplier_attribute.disabled: true, mathml.scriptminsize_attribute.disabled: true, mathml.mathspace_names.disabled: true, mathml.mfenced_element.disabled: true, layout.css.math-style.enabled: true]
|
prefs: [mathml.scriptsizemultiplier_attribute.disabled: true, mathml.scriptminsize_attribute.disabled: true, mathml.mathspace_names.disabled: true, layout.css.math-style.enabled: true]
|
Загрузка…
Ссылка в новой задаче