Realfaglige uttrykk kodet som MathML
Rolf Arne Mellem - Universell utforming AS
Publisert: 19.10.2026
MathML (Mathematical Markup Language) er et standardisert kodespråk for å beskrive matematikk og annen realfaglig notasjon i digitale dokumenter og på nettsider.
På samme måte som HTML beskriver tekst og dokumentstruktur, beskriver MathML matematiske uttrykk og sammenhengene mellom dem. Matematikken blir dermed maskinlesbar, ikke bare visuelt presentert. Nettlesere, skjermlesere, søkemotorer og andre digitale verktøy kan forstå og behandle innholdet. For elevene betyr dette at matematikken kan kopieres, utforskes og presenteres på ulike måter.
På nettsider anbefaler W3C at matematikk kodes med MathML. Moderne nettlesere kan vise MathML direkte, slik at uttrykkene presenteres korrekt på skjermen.
Når en skjermleser oppdager MathML på en nettside, behandles innholdet annerledes enn vanlig tekst. Skjermleseren kan bruke den matematiske strukturen som er beskrevet i koden til opplesning, navigasjon og visning i punktskrift.
Dette gir elever som bruker skjermleser mulighet til å lese, navigere i og utforske matematiske uttrykk ved hjelp av den underliggende strukturen. Det er vanskeligere når matematikken bare presenteres som vanlig tekst eller bilde.
For at MathML skal være nyttig i praksis, må skjermleseren presentere matematikken i en notasjon elevene kjenner og kan arbeide med. Selve MathML-koden er bare grunnlaget. Hvordan uttrykket leses opp eller vises i punktskrift, er avgjørende for om eleven faktisk kan bruke matematikken. Dette er fortsatt en utfordring, fordi mange tekniske løsninger bruker notasjoner som ikke er tilpasset norsk språk og norske punktskriftkonvensjoner.
Disse utfordringene er godt kjent fra produksjon av tilrettelagte læremidler og bøker. Ulike aktører har derfor valgt ulike løsninger for å gjøre matematikk tilgjengelig.
Ulike tilnærminger til tilgjengelig matematikk
MathML brukes allerede i mange digitale læremidler for å kode matematikk. Vanligvis opprettes uttrykkene i en visuell editor eller skrives i LaTeX og konverteres deretter til MathML. Når MathML-koden er korrekt, kan skjermlesere og andre hjelpemidler presentere matematikken i ulike notasjoner tilpasset elevenes behov. Feil eller mangelfull koding kan derimot føre til at matematikken blir presentert på en måte som er vanskelig å forstå eller arbeide med.
Statped: Tilrettelagte bøker i punktskrift
Statped lager tilpassede lærebøker i matematikk og eksamensoppgaver for elever i grunnskolen som leser punktskrift. I disse bøkene bruker Statped ikke MathML, men skriver matematikken i en notasjon som er godt egnet til å lese og skrive med skjermleser. Nylig har Statped oppdatert sin notasjon slik at den ligger nær ASCIIMath. ASCIIMath er ikke en punktskriftstandard, men en etablert lineær matematikknotasjon. Fordi notasjonen er lineær, egner den seg også godt for lesing i punktskrift.
Matematikk med punktskrift | Statped (Åpnes i ny fane)
ASCIIMath hjemmeside (Åpnes i ny fane)
Tibi: MathML i tilrettelagte e-bøker
Tibi, Nasjonalbibliotekets tjeneste for tilrettelagt litteratur, produserer og låner ut lydbøker, e-bøker og bøker i punktskrift. Studenter som leser punktskrift kan også bestille studielitteratur fra Tibi.
Hvem kan få produsert studielitteraturen sin | Tibi (Åpnes i ny fane)
I Tibis elektroniske bøker er matematikken kodet direkte i MathML. For å sikre at matematikken fungerer godt med skjermlesere, blir koden kontrollert og rettet ved behov. Tibi bidrar også til utvikling av norske regler for opplesning av matematikk i MathCAT, slik at matematiske uttrykk kan presenteres på en måte som fungerer bedre for norske brukere.
MathCAT hjemmeside (Åpnes i ny fane)
Eksemplene viser at tilgjengelig matematikk ikke bare handler om å bruke MathML, men også om å sikre at koden beskriver matematikken korrekt. Først da kan skjermlesere og andre hjelpemidler presentere innholdet på en måte elevene forstår.
MathML må være kodet riktig
Selv om elevene ikke ser MathML-koden direkte, er det den skjermleseren bruker for å tolke matematikken. Feil i koden kan føre til at uttrykk blir lest opp feil, vises feil i punktskrift eller blir vanskelig å navigere i.
Når matematikk ser riktig ut, men MathML er kodet feil
Et matematisk uttrykk kan se riktig ut på skjermen uten at MathML-koden beskriver uttrykket korrekt. For seende elever vil slike feil ofte være usynlige. Kopiering, videre behandling og bruk av skjermleser er derimot avhengig av den matematiske strukturen som er kodet i uttrykket.
Eksempler på feil MathML
- Feil tegn for operatorer (minus kodet som bindestrek i stedet for matematisk minustegn)
- Feil koding av funksjoner og variabler (for eksempel funksjonsnavn delt opp i enkeltvariabler eller kodet som tekst)
- Feil koding av tall (flersifrede tall delt opp eller flere tall slått sammen i samme element)
- Unødvendig strukturering (for mange <mrow>-elementer)
Det er derfor ikke tilstrekkelig å kontrollere hvordan matematikken ser ut. Koden må også beskrive den matematiske betydningen korrekt.
Hvordan kode MathML riktig
Når matematikk kodes som MathML, er det viktig at koden beskriver uttrykket korrekt. MathML brukes for innhold der den matematiske strukturen har betydning for forståelse, videre behandling eller tilgjengelighet, for eksempel matematiske uttrykk, ligninger, funksjoner, matriser og kjemiske formler.
Miljøene som produserer tilrettelagt litteratur i Norden har utviklet felles retningslinjer for bruk av MathML, Nordic Guidelines for Mathematical Content in HTML Files, Using MathML:
Nordic MathML Guidelines - releases | Github (Åpnes i ny fane)
Et grunnleggende prinsipp i retningslinjene er at MathML skal beskrive den matematiske strukturen, ikke bare den visuelle presentasjonen. Et uttrykk kan se korrekt ut på skjermen, men likevel være kodet på en måte som gjør at skjermlesere, leselister og andre verktøy tolker det feil. Retningslinjene gir derfor konkrete anbefalinger for både når MathML skal brukes og hvordan ulike typer uttrykk bør kodes.
Det er forskjeller mellom digitale læremidler og tilrettelagt litteratur. Når og hvordan MathML bør brukes, kan derfor variere mellom disse områdene. Se egen artikkel om Matematikk kodet som tekst.
Hvordan kontrollere MathML
Korrekt MathML kan være vanskelig å kontrollere visuelt. Selv om matematikken ser riktig ut på skjermen, kan det fortsatt finnes feil i den underliggende koden. Derfor bør MathML-koden kontrolleres direkte.
Manuell kontroll av MathML krever kompetanse på både matematikk og oppmerking. Nordic MathML Guidelines er et nyttig hjelpemiddel for redaktører og utviklere som ønsker å kontrollere koden selv. I tillegg finnes det verktøy som kan avdekke vanlige feil i MathML-koden.
Med hjelp av Kvalidator
Kvalidator brukes blant annet i arbeidet med tilgjengelig matematikk hos Statped og Nasjonalbiblioteket. Verktøyet kontrollerer ikke bare om MathML-koden er gyldig, men kan også avdekke vanlige feil i den semantiske oppmerkingen av matematiske uttrykk.
W3C Validator for html og MathML
W3C Validator kan brukes til å kontrollere HTML- og MathML-kode for syntaktiske feil. Verktøyet er nyttig for å avdekke ugyldig kode, men kontrollerer i mindre grad om den matematiske strukturen er kodet semantisk korrekt
W3C Validator (Åpnes i ny fane)
Med hjelp av skjermleser NVDA
Validatorer kan avdekke mange feil i MathML-koden, men de kan ikke garantere at matematikken blir presentert på en forståelig måte for elevene. Praktisk testing med skjermleser er derfor et viktig supplement.
I NVDA er MathCAT innebygget som motor for presentasjon av matematikk. Ved testing kan matematikken leses opp med norsk tale og vises i lineære notasjoner, for eksempel ASCIIMath eller LaTeX. Dette gjør det mulig å kontrollere hvordan matematikken faktisk blir presentert for brukere av skjermleser og leselist.
At matematikken ser riktig ut på skjermen, er ikke nødvendigvis nok. God kvalitet forutsetter at uttrykket både vises korrekt, er kodet korrekt og presenteres forståelig med hjelpemidler.
Andre utfordringer
Denne artikkelen handler om å kode MathML riktig og kontrollere at koden er korrekt. Selv når MathML er riktig kodet, kan den oppfattes feil. Mange av disse utfordringene ligger utenfor kontrollen til produsenter av digitale læremidler.
MathJax
MathJax brukes i mange digitale læremidler for å konvertere uttrykk skrevet i LaTeX eller ASCIIMath til MathML og for å vise matematikk i nettleseren.
Standardoppsettet kan imidlertid skjule MathML-koden for skjermlesere og andre verktøy som leser den underliggende oppmerkingen. MathJax kan også legge til ekstra elementer i MathML-koden som påvirker hvordan uttrykk tolkes av hjelpemidler.
Selv når MathML-koden er korrekt, bør det derfor kontrolleres hvordan matematikken faktisk presenteres med skjermleser og leselist.
Skjermleserstøtte
Støtten for MathML varierer mellom skjermlesere. I oktober 2026 er det kun NVDA og det innebygde programbiblioteket MathCAT som oversetter til en notasjon vi ønsker å bruke i Norge. Men det jobbes for å få MathCAT fult integrert i flere skjermlesere.
Ulik matematisk notasjon
Matematisk notasjon varierer mellom land og fagmiljøer. Norsk matematikk bruker blant annet andre tegn for gange og dele enn det som er vanlig i enkelte andre land, og intervaller skrives på en annen måte.
MathML beskriver den matematiske strukturen, men ikke alle sider ved presentasjonen. Det samme uttrykket kan derfor fremstå ulikt i ulike sammenhenger.
Konklusjon
MathML er den foretrukne måten å kode matematikk på i digitale læremidler. Korrekt MathML gjør matematikken tilgjengelig for skjermlesere og andre verktøy, men forutsetter at den matematiske strukturen er kodet riktig. Validering av koden og praktisk testing er derfor viktige deler av kvalitetsarbeidet. Jo bedre MathML-koden er, desto større er muligheten for at matematikken kan presenteres på en måte som fungerer for elevene (Retningslinjer for likeverdig tilgang - Veileder for likeverdig tilgang til digitale læremidler i skole og utdanning | SN/K 607).).
Tillegg: Tekniske detaljer
Status for skjermlesere og MathML
De fleste skjermlesere har en innebygget modul/programbibliotek som omvandler MathML kode både til tale og punktskrift. Dessverre er mye teknologi basert på amerikansk språk og punktskrift. MathCAT er et programbibliotek som flere har tatt i bruk i det siste. Med MathCAT kan elevene velge mellom flere ulike notasjoner. For eksempel ASCIIMath, som er ganske lik Statped sin punktskriftnotasjon i matematikk. De norske tekst-til-tale reglene i MathCAT blir utviklet og vedlikeholdt av Nasjonalbiblioteket.
Status for skjermlesere i oktober 2026:
- NVDA har MathCAT innebygget, og bruker all funksjonalitet i MathCAT.
- Jaws har MathCAT innebygget. Men fungerer ikke på norsk ennå.
- VoiceOver (iOS og macOS) har mulighet for amerikansk punktskrift. Tekst-til-tale er oversatt til norsk.
Innstillinger for NVDA
Når NVDA brukes til testing, er de innebygde verktøyene Punktskriftviser (Braille Viewer) og Stemmeleser (Speech Viewer) nyttige for å kontrollere hvordan skjermleseren presenterer innhold i punktskrift og med tekst-til-tale.
Punktskriftviseren viser 40 tegn om gangen. Ved testing av lengre matematiske uttrykk kan det derfor være nyttig å tilordne hurtigtaster til følgende funksjoner under Preferanser - Inndatagester - Punktskrift:
- Bla leselisten bakover
- Bla leselisten fremover
I Preferanser – Innstillinger – Math finnes innstillinger for matematikk.
Anbefalte innstillinger:
- Language: Norsk bokmål
- Speech style: ClearSpeak eller SimpleSpeak
- Braille output code: ASCIIMath eller LaTeX
Matematikk leses normalt best med Microsoft OneCore-stemmer (Jon).
Innstillinger for MathJax
For at skjermleser og MathCAT skal få tak i MathML koden skal følgende innstillinger gjøres:
- Options: Slå på "Include Hidden MathML"
- Eventuelt kan "Options - Semantic Enrichment" slås av for å hindre MathJax å endre den originale MathML-koden.
- Sjekk følgende innstillinger:
- Math Settings - Math Renderer: CHTML
- Accessibility - Speech og Braille - Generate skal være av (ikke valgt)
Hvordan skjermlesere presenterer matematikk med tekst-til-tale
Matematikk kan ikke leses opp på samme måte som vanlig tekst. Mens et visuelt uttrykk kan bruke plassering, opphøyde symboler og todimensjonal struktur, må skjermleseren presentere innholdet som en sekvens av ord. En brøk må for eksempel beskrives med ord som forteller hva som er teller og nevner. Potenser og røtter må også beskrives på en måte som gjør strukturen tydelig. Skjermlesere bruker derfor særskilte regler for matematikk.
Regler for tekst-til-tale
Det finnes flere regelsett for hvordan matematikk kan presenteres med tekst-til-tale.
MathSpeak
MathSpeak fokuserer på å beskrive den matematiske notasjonen detaljert og entydig. Tale-reglene beskriver i stor grad hvordan uttrykket er skrevet, og har mange fellestrekk med Nemeth Braille Code. ClearSpeak og SimpleSpeak forsøker i større grad å formidle uttrykkets matematiske betydning på en naturlig måte.
ClearSpeak
ClearSpeak er et regelsett for opplesing av matematikk utviklet av Educational Testing Service (ETS). Målet er å gi en naturlig og effektiv opplesing samtidig som den matematiske betydningen bevares. I motsetning til MathSpeak forsøker ClearSpeak i større grad å formidle hvordan uttrykket skal forstås matematisk, fremfor å beskrive alle detaljer i den skrevne notasjonen
ClearSpeak Rules And Preferences.docx (Fil til nedlastning)
SimpleSpeak
SimpleSpeak bygger på mange av de samme prinsippene som ClearSpeak, men forsøker å forkorte opplesingen av uttrykk som anses som enkle. Dette kan gjøre matematikken raskere og lettere å oppfatte, men forutsetter at brukeren kjenner reglene for hvordan slike uttrykk leses opp. Når uttrykkene blir mer komplekse, vil opplesingen ofte ligne mer på ClearSpeak.
Lineær matematikk i punktskrift
Når matematikk skal presenteres uten visuell (2D) formatering, brukes ofte lineære (linjebaserte) notasjoner. Noen eksempler på slike er:
- ASCIIMath (En matematikknotasjon som kan skrives med vanlige tastaturtegn, utviklet for å være enkel å skrive og lese. Nærme Statped sin notasjon) ASIIMath.org (Åpnes i ny fane)
- LaTeX (En tekstbasert notasjon som ofte brukes til å skrive matematikk)
- Nemeth (Amerikansk punktnotasjon)
- UEB Math (Punktnotasjon for engelsktalende land)
ASCIIMath og LaTeX er ikke spesielle punktnotasjoner, men linjebaserte notasjoner som er enkle å lese med punktskrift. I tillegg til Nemeth og UEB har ulike land sine egne punktnotasjoner.
Alle presenterer matematikken på én linje og gjør det mulig å skrive eller lese uttrykk uten den todimensjonale oppstillingen som brukes visuelt.
Presentasjon og mening er ikke det samme
Historisk har matematikk på nett hovedsakelig vært representert ved hjelp av "Presentation MathML". Denne formen beskriver hvordan matematikken skal vises. Men et matematisk uttrykk er ikke bestandig entydig alene, det er avhengig av konteksten det står i.
Nyere mekanismer som usynlige operatorer og intent-attributtet gjør det mulig å beskrive den matematiske betydningen mer presist, uten å endre hvordan uttrykket ser ut. Dette kan gi bedre støtte for skjermlesere og andre hjelpemidler.
To uttrykk kan se identiske ut på skjermen, men representere forskjellige matematiske begreper.
- (x+y)m kan bety (x+y) ganger m, eller x+y meter
- a(x+h) kan bety a ganger (x+h) eller funksjonen a av (x+h)
- [x, y] kan være et lukket intervall, eller koordinatformen til en vektor
- 100:2 kan være forholdet 100 til 2, eller 100 dividert med 2
- f(x) kan representere en funksjonsverdi eller andre matematiske konstruksjoner, avhengig av sammenhengen.
For mennesker er denne informasjonen ofte åpenbar ut fra konteksten. For datamaskiner og hjelpemidler er den ikke nødvendigvis det.
Usynlige operatorer
MathML inneholder flere usynlige operatorer som gjør det mulig å beskrive den matematiske betydningen uten å påvirke den visuelle presentasjonen.
- Function Application U+2061
- Invisible Times U+2062
- Invisible Separator U+2063
- Invisible Plus U+2064
Disse operatorene vises normalt ikke på skjermen, men de kan gi skjermlesere og andre verktøy viktig informasjon om hvordan uttrykket skal tolkes.
Et uttrykk som ser enkelt ut visuelt, kan derfor inneholde flere elementer i MathML-koden enn det som umiddelbart er synlig.
Intent-attributtet
Noen matematiske uttrykk er vanskelige å tolke uten ekstra informasjon. Dette gjelder spesielt når samme notasjon brukes med ulike betydninger.
For å løse dette har nyere versjoner av MathML innført støtte for såkalt intent.
Intent gjør det mulig å beskrive den tilsiktede betydningen av et uttrykk. Denne informasjonen kan brukes av skjermlesere og andre verktøy som skal presentere matematikken på en forståelig måte.
Selv om støtte for intent fortsatt er under utvikling i mange verktøy, kan attributtet bidra til mer presis presentasjon av matematikk i fremtiden.
Intent | MathML 4, W3C (Åpnes i ny fane)
Les mer om koding av matematikk
- De fire regnearter i tekst
- Matematikk med punktskrift | Statped (Åpnes i ny fane)
- ASCIIMath hjemmeside (Åpnes i ny fane)
- Hvem kan få produsert studielitteraturen sin | Tibi (Åpnes i ny fane)
- MathCAT hjemmeside (Åpnes i ny fane)
- Nordic MathML Guidelines - releases | Github (Åpnes i ny fane)
- Kvalidator (Åpnes i ny fane)
- W3C Validator (Åpnes i ny fane)
- ClearSpeak Rules And Preferences.docx (Fil til nedlastning)
- ASCIIMath.org (Åpnes i ny fane)
- Intent | MathML 4, W3C (Åpnes i ny fane)