Input:Mathjax Config für Web, mobile und assis
<ins class="marked-for-jax">\[
1 + 2 + 3 + \ldots + n = \frac{n(n+1)}2.
\]</ins>
Mathjax Config:
MathJax.Hub.Config({
jax: ["input/TeX", "output/HTML-CSS"],
extensions: ["tex2jax.js"],
messageStyle: "none",
TeX: {
extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]
}
});
Mathjax Ausgang, verkürzte und formatiert zur Klarheit:
<p>
<ins class="marked-for-jax">
<span class="MathJax_Preview" style="color: inherit;"></span>
<div class="MathJax_Display" style="text-align: center;">
<span class="MathJax" id="MathJax-Element-2-Frame" tabindex="0" data-mathml="[mathML data here]" role="presentation" style="position: relative;">
<nobr aria-hidden="true"><span class="math" id="MathJax-Span-12" role="math" style="width: 14.517em; display: inline-block;"><!--lots of nested spans here--></nobr>
<span class="MJX_Assistive_MathML MJX_Assistive_MathML_Block" role="presentation"><!--lots of mathML here--></span>
</span>
</div>
<script <!--does not impact any output. Why is it even there at all?--> type="math/tex; mode=display" id="MathJax-Element-2">1 + 2 + 3 + \ldots + n = \frac{n(n+1)}2.</script>
</ins>
</p>
Aussehen auf UIWebView . Beachten Sie, dass wir die Ausgabe zweimal sehen. Die erste kommt von den verschachtelten Spannen; der zweite kommt vom Hilfsmittel.
Wenn ich die assistive mit CSS ausstreichen, sehen wir tatsächlich nur die Ausgabe einmal. Aber dann hören VoiceOver-Benutzer nichts. Alternativ könnte ich die verschachtelten Bereiche mit CSS ausziehen. Ich bin diesem Ansatz gegenüber misstrauisch, da es wahrscheinlich auf iOS funktioniert, aber wahrscheinlich nicht auf allen Browsern funktioniert. Abhängig davon, wie genau ich die Ausgabe verwende, möchte ich vielleicht verhindern können, dass MathJax Teile von dem ausgibt, was es gerade tut. Zum Beispiel werde ich in einigen Fällen den HTML-Code so verwenden, dass ich sicher bin, dass er nur auf iOS erscheinen wird. In einem solchen Fall möchte ich kein HTML, das ich mit CSS ausstreiche, an erster Stelle haben.
Wie kann ich erreichen, dass die Ausgabe für sehende und assistive Benutzer sinnvoll ist?
EDIT: Ich fand eine ähnliche Frage hier: MathJax is duplicating my equations -- why and how can I fix this?
Weitere edit: Ich kann mit dem folgenden CSS des „doppelt sehen“ Problem loszuwerden, von hier abgeleitet: http://mathjax.readthedocs.org/en/latest/options/assistive-mml.html. Aber dann habe ich ein neues Problem - VoiceOver spricht keine Mathematik.
span.MJX_Assistive_MathML {
position:absolute!important;
clip: rect(1px, 1px, 1px, 1px);
padding: 1px 0 0 0!important;
border: 0!important;
height: 1px!important;
width: 1px!important;
overflow: hidden!important;
display:block!important;
}
Sie zeigen nicht den Befehl, Mathjax lädt (und die Konfigurationsdatei, die dort angegeben ist - ich nehme an, Sie eine verwenden, da Sie nicht die AssistiveMML Erweiterung laden sich selbst). Es sollte bereits ein Styling vorhanden sein, damit die assistive Version nicht angezeigt wird. Vielleicht stört das CSS auf Ihrer Seite das. Können Sie ein JsFiddle- oder Codebin-Beispiel erstellen, das das Problem aufweist? Auch die "Beziehungsfrage" ist nicht, wie das schon lange vor der Verfügbarkeit der AssitivemML war. Dies ist wahrscheinlich ein CSS-Problem. –
Sorry, habe nicht verstanden, wie man Geigen öffentlich macht. Arbeiten daran. –
OK, verstanden. Drei Versionen der Geige, mit unterschiedlichen Mengen von css, unten verlinkt. Alle drei haben das gleiche Problem. Http://jsfiddle.net/verybadcat/cjajbnj8/1/ https://jsfiddle.net/verybadcat/cjajbnj8/2/ https://jsfiddle.net/verybadcat/cjajbnj8/3/ –