We should make more MathML operators mirrorable, for example: operator.\u2308.prefix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # ⌈ operator.\u2309.postfix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # ⌉ operator.\u230A.prefix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # ⌊ operator.\u230B.postfix = lspace:0 rspace:0 stretchy fence symmetric direction:vertical # ⌋ There are certainly other possible candidates among math fences. The unicode.xml file maintained by David Carlisle uses a mirrorable attribute too.

Using a scale to mirror operators does not always work (for example for clockwise integral) but hopefully that should work well for most operators.

Created attachment 627595 [details] [diff] [review] Make updateOperatorDictionary.pl read mirrorable property

Created attachment 627597 [details] [diff] [review] Patch V2 Here a patch adding the mirrorable property to the operators marked @mirror="Y" in the unicode.xml file from http://www.w3.org/TR/xml-entity-names/. I expect that it is correct to change all "left" into "right" and vice versa. For example "integral with leftwards arrow with hook" is changed into "integral with rightwards arrow with hook". I don't know why "division slash" is the only slash that should be mirrored? The remaining conflicts are given below. They are for clockwise/anticlockwise integrals. [conflict][stretching] - operator.\u005F.infix (low line) -lspace:1 rspace:1 stretchy +lspace:1 rspace:1 [conflict] - operator.\u2231.prefix (clockwise integral) -lspace:0 rspace:1 largeop symmetric +lspace:0 rspace:1 largeop symmetric mirrorable [conflict] - operator.\u2232.prefix (clockwise contour integral) -lspace:0 rspace:1 largeop symmetric +lspace:0 rspace:1 largeop symmetric mirrorable [conflict] - operator.\u2233.prefix (anticlockwise contour integral) -lspace:0 rspace:1 largeop symmetric +lspace:0 rspace:1 largeop symmetric mirrorable [conflict] - operator.\u2A11.prefix (anticlockwise integration) -lspace:1 rspace:2 largeop movablelimits symmetric +lspace:1 rspace:2 largeop movablelimits symmetric mirrorable

Comment on attachment 627595 [details] [diff] [review] Make updateOperatorDictionary.pl read mirrorable property I don't claim to know about XSL, but here's my rubber stamp.

https://hg.mozilla.org/integration/mozilla-inbound/rev/57819b266920 https://hg.mozilla.org/integration/mozilla-inbound/rev/f0c3e8edc333

https://hg.mozilla.org/mozilla-central/rev/57819b266920 https://hg.mozilla.org/mozilla-central/rev/f0c3e8edc333

Added a note to https://developer.mozilla.org/en-US/docs/Firefox_15_for_developers#MathML I don't think this needs more documentation than that. Feel free to add more if you want to, though.