2016-02-21 11 views
7

Wejście:mathjax config internetowych, mobilnych oraz wspomagające

<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"] 
    } 
}); 

wyjście mathjax, skrócone i formatowane dla jasności:

<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> 

pojawienie się na UIWebView . Zauważ, że widzimy wynik dwukrotnie. Pierwszy pochodzi z zagnieżdżonych przęseł; drugi pochodzi od asystenta. seeing double

Jeśli usuwam asystenta z CSS, faktycznie widzimy tylko wyjście jeden raz. Ale użytkownicy VoiceOver nic nie słyszą. Ewentualnie mogę usunąć zagnieżdżone przęsła za pomocą CSS. Podejrzewam, że takie podejście jest podejrzane, ponieważ chociaż prawdopodobnie działałoby w systemie iOS, prawdopodobnie nie działałoby we wszystkich przeglądarkach. Dodatkowo, w zależności od tego, jak dokładnie używam danych wyjściowych, mogę chcieć uniemożliwić MathJaxowi wyprowadzanie części tego, co aktualnie robi. Na przykład w niektórych przypadkach będę używał HTML w sposób, który na pewno będzie widoczny tylko w systemie iOS. W takim przypadku każdy HTML, który usuwam z css, wolałbym nie mieć w pierwszej kolejności.

W jaki sposób uzyskać dane wyjściowe dla użytkowników widzących i asystujących?

EDIT: znalazłem powiązane pytanie tutaj: MathJax is duplicating my equations -- why and how can I fix this?

Dalsze edit: mogę pozbyć się „podwójne widzenie” problem z następującym CSS, pochodzącego stąd: http://mathjax.readthedocs.org/en/latest/options/assistive-mml.html. Ale wtedy mam nowy problem - VoiceOver nie mówi żadnej matematyki.

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; 
} 
+1

Nie pokazuj polecenia, który ładuje mathjax (i plik konfiguracyjny, który jest podany tam - Zakładam, że używasz jednego ponieważ nie ładują rozszerzenia AssistiveMML siebie). Powinien już istnieć styl, aby nie wyświetlać wersji asystującej. Być może zakłóca to strona CSS Twojej strony. Czy można zrobić przykład jsFiddle lub codebin, który wykazuje problem? Co więcej, "relate question" nie jest, ponieważ było to dawno przed udostępnieniem AssitiveMML. Jest to prawdopodobnie problem CSS. –

+0

Przykro nam, ale nie rozumiem, jak upubliczniać skrzypce. Pracuję nad tym. –

+0

OK, rozumiem. Trzy wersje skrzypiec, z różnymi ilościami css, są powiązane poniżej. Wszystkie trzy mają ten sam problem.https: //jsfiddle.net/verybadcat/cjajbnj8/1/ https://jsfiddle.net/verybadcat/cjajbnj8/2/ https://jsfiddle.net/verybadcat/cjajbnj8/3/ –

Odpowiedz

1

częściową odpowiedź była umieścić następującą CSS. Zauważ, że jest to specyficzne dla moich iOS/droidów trybie offline scenariusza. Dla tych z was, którzy mają różne scenariusze, może nie mieć zastosowania. Co więcej, niektóre rzeczy są bardzo złe. Nie jestem z tego zadowolony.

[aria-hidden="true"] { display: none; }