w3c / mathml

MathML4 editors draft
https://w3c.github.io/mathml/
Other
59 stars 18 forks source link

Use fence/separator operator properties in MathML Core? #209

Closed fred-wang closed 1 week ago

fred-wang commented 4 years ago

cc @Joanmarie @asurkov

They are currently mentioned here: https://mathml-refresh.github.io/mathml-core/#operator-fence-separator-or-accent-mo https://mathml-refresh.github.io/mathml-core/#dictionary-based-attributes https://mathml-refresh.github.io/mathml-core/#operator-dictionary

However, these are not used at all for layout purpose.

They should be keep in MathML Core if they are necessary for assistive technologies (and so browsers must expose them via their accessibility tree). I believe Gecko and WebKit only expose them for NSAccessibility but I'm not even sure that's used by VoiceOver. In Chromium this is an open question at https://bugs.chromium.org/p/chromium/issues/detail?id=1042665

They are also discussions elsewhere about how to expose more math semantics, so maybe any method decided there could apply for fence/separator too instead of MathML-specific attributes. But that seems out of the scope of MathML Core.

fred-wang commented 4 years ago

Multichar entries of the operator dictionary are now handled by https://mathml-refresh.github.io/mathml-core/#operator-dictionary-compact

For the record, current estimated size is 7702 = 1540 bytes. The cost of supporting fence/separator is significant enough, (65+3)2 = 136 bytes so 9% of the dictionary size.

Probably not a big deal, rendering engines won't implement this anyway. This would only be needed by browsers if the AT really need them and if that can't be done by other means than dictionary-based attributes.

fred-wang commented 4 years ago

I think there were mistakes in my previous script. Anyway, most recent estimate can be found in the spec.

NSoiffer commented 4 years ago

For what it is worth, MathPlayer does not make use of either of those properties to speak or navigate math.

On the other hand, chrome is running at about 1,500,000,000 bytes right now on my computer; worrying about 136 bytes seems like a complete waste of time.

fred-wang commented 4 years ago

On the other hand, chrome is running at about 1,500,000,000 bytes right now on my computer; worrying about 136 bytes seems like a complete waste of time.

This is the important part from my previous comment: "rendering engines won't implement this anyway. This would only be needed by browsers if the AT really need them and if that can't be done by other means than dictionary-based attributes.". So I expect this is something to be answered by a11y team / AT developers, not something decided by the CG. If they don't need it, we should just remove this from MathML Core.

fred-wang commented 4 years ago

I removed any mention on how to determine the default values of the fence and separator properties, since they are not currently used. Instead, the specification now only says it does not define any observable behavior for them (similar to what is done for maction and semantics attributes) and contains a note to suggest tables: https://mathml-refresh.github.io/mathml-core/#dfn-fence

If it turns out a11y team / AT developers need them, this can be easily reverted since the logic is still there.

NSoiffer commented 4 years ago

At the July 27 meeting, we resolved to remove fence/separator from core. More consideration was deemed needed before removing from full.

davidcarlisle commented 1 week ago

fence and separator attributes have been dropped from full in chapter 3 by PR #500 keep this issue open a little longer need updates to: