2016-02-21 16 views
7

ingresso:mathjax configurazione per web, mobile, e ausili

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

uscita mathjax, abbreviato e formattata per chiarezza:

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

Aspetto su UIWebView . Si noti che stiamo vedendo l'output due volte. Il primo proviene dalle campate nidificate; il secondo proviene dall'assistente. seeing double

Se spoglio l'assistivo con CSS, in effetti vediamo solo l'output una volta. Ma poi gli utenti VoiceOver non sentono nulla. In alternativa, potrei rimuovere gli span nidificati con i CSS. Sono sospettoso di questo approccio perché, anche se probabilmente funzionerebbe su iOS, probabilmente non funzionerebbe su tutti i browser. Inoltre, a seconda di come sto usando l'output, potrei voler impedire a MathJax di emettere parti di ciò che sta facendo al momento. Ad esempio, in alcuni casi, userò l'Html in un modo che posso essere sicuro apparirà solo su iOS. In tal caso, qualsiasi Html che sto eliminando con i CSS, preferirei non avere in primo luogo.

Come posso ottenere risultati utili per gli utenti vedenti e assistenti?

EDIT: ho trovato una questione connessa qui: MathJax is duplicating my equations -- why and how can I fix this?

Ulteriori edit: posso sbarazzarsi del "vedere doppio" problema con il seguente CSS, derivato da qui: http://mathjax.readthedocs.org/en/latest/options/assistive-mml.html. Ma poi ho un nuovo problema: VoiceOver non parla in matematica.

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

non si mostra il comando che carica mathjax (e il file di configurazione specificato lì - presumo si utilizza uno dal momento che non sta caricando l'estensione AssistiveMML da soli). Ci dovrebbe essere già uno stile per rendere non visibile la versione assistita. Forse la tua pagina CSS sta interrompendo questo. Puoi fare un esempio jsFiddle o codebin che mostra il problema? Inoltre, la "domanda correlata" non lo è, poiché era molto tempo prima che AssitiveMML fosse disponibile. Questo è probabilmente un problema CSS. –

+0

Scusa, non ho capito come rendere pubblici i violini. Lavorando su di esso. –

+0

OK, capito. Tre versioni del violino, con quantità variabili di css, collegate sotto. Tutti e tre hanno lo stesso problema.https: //jsfiddle.net/verybadcat/cjajbnj8/1/ https://jsfiddle.net/verybadcat/cjajbnj8/2/ https://jsfiddle.net/verybadcat/cjajbnj8/3/ –

risposta

1

risposta parziale è stato quello di mettere il seguente CSS. Si noti che questo è specifico per i miei iOS/scenario offline droide. Per quelli di voi che hanno diversi scenari, potrebbe non essere applicabile. Inoltre, alcune cose vengono fuori piuttosto male. Non sono esattamente soddisfatto.

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