Îmbunătățirea accesibilității reducerii dvs
Publicat: 2022-03-10Markdown este un mic limbaj de conversie text în HTML. A fost creat de John Gruber în 2004 cu scopul de a face scrierea textului formatat într-un editor de text simplu mai ușoară. Puteți găsi Markdown în multe locuri de pe internet, în special în locațiile în care sunt prezenți dezvoltatori. Două exemple notabile sunt comentariile pe GitHub și codul sursă pentru postările de pe Smashing Magazine!
Cum funcționează Markdown
Markdown folosește aranjamente speciale de caractere pentru a formata conținutul. De exemplu, puteți crea un link prin includerea unui caracter, cuvânt sau expresie între paranteze drepte. După paranteza pătrată de închidere, includeți apoi o adresă URL cuprinsă în paranteze pentru a crea o destinație pentru link.
Deci tastând:
[I am a link](https://www.smashingmagazine.com/)
Ar crea următorul marcaj HTML:
<a href="https://www.smashingmagazine.com/">I am a link</a>
De asemenea, puteți combina HTML cu Markdown și totul se va reduce la HTML atunci când este compilat. Următorul exemplu:
I am a sentence that includes <span class="class-name">HTML</span> and __Markdown__ formatting.
Generează aceasta ca marcaj HTML:
<p>I am a sentence that includes <span class="class-name">HTML</span> and <strong>Markdown</strong> formatting.</p>
Markdown și accesibilitate
Accesibilitatea este o preocupare holistică, ceea ce înseamnă că afectează fiecare aspect al creării și menținerii experiențelor digitale. Deoarece Markdown este un instrument digital, are și considerente de accesibilitate de care trebuie să fii conștient.
- Vestea buna :
Markdown generează un marcaj HTML simplu, iar marcajul HTML simplu poate fi citit cu ușurință prin tehnologia de asistență. - Vestea mai puțin bună :
Markdown nu este atotcuprinzător și nici nu este prescriptiv. În plus, accesibilitatea înseamnă mai mult decât doar tehnologie de asistență.
Când vine vorba de a vă asigura că conținutul dvs. Markdown este accesibil, există două probleme de ansamblu:
- Există anumite tipuri de conținut pe care Markdown nu le acceptă și
- Nu există o experiență de tip Clippy care să te însoțească în timp ce scrii, ceea ce înseamnă că nu vei primi un avertisment dacă faci ceva care va crea conținut inaccesibil.
Din cauza acestor două considerente, există lucruri pe care le putem face pentru a ne asigura că conținutul nostru Markdown este cât se poate de accesibil.
Cele mai importante trei lucruri pe care le poți face
Poate fi dificil să știi de unde să începi când vine vorba de a-ți face conținutul accesibil. Iată trei lucruri pe care le puteți face chiar acum pentru a avea un impact mare și semnificativ.
1. Utilizați titluri pentru a vă contura conținutul
Navigarea după titlu este de departe cea mai populară metodă pe care mulți utilizatori de tehnologie de asistență o folosesc pentru a înțelege conținutul paginii sau vizualizarea pe care o privesc.
Din acest motiv, doriți să utilizați opțiunile de formatare a titlurilor Markdown ( #
, ##
, ###
, ####
, #####
și ######
) pentru a crea o structură logică a anteturilor:
# The title, a first-level heading Content ## A second-level heading Content ### A third-level heading Content ## Another second-level heading Content
Acest lucru creează un contur ierarhic care este ușor de scanat:
1. The title, a first-level heading a. A second-level heading i. A Third-level heading b. Another second-level heading
Scrierea unor niveluri eficiente de titlu este un pic o artă, deoarece doriți suficiente informații pentru a comunica domeniul general al paginii, dar nu copleși pe cineva prin supra-descriere. De exemplu, o rețetă ar putea avea nevoie doar de câteva elemente h2
pentru a secționa ingredientele, instrucțiunile și povestea de fundal, în timp ce o lucrare academică ar putea avea nevoie de toate cele șase niveluri de titlu pentru a comunica pe deplin nuanța.
Capacitatea de a scana rapid toate titlurile dintr-o pagină sau de a vizualiza și de a sări la una anume este o tehnică care nu se limitează nici la doar cititoare de ecran. Mă bucur și beneficiez de extensii precum headingsMap care vă permit să profitați de această funcție.
2. Scrieți descrieri alternative semnificative pentru imaginile dvs
Descrierile alternative îi ajută pe cei care au vedere slabă sau care navighează cu imaginile dezactivate pentru a înțelege conținutul imaginii pe care o utilizați.
În Markdown, o descriere alternativă este plasată între parantezele de deschidere și de închidere ale codului de formatare a imaginii:
![A sinister-looking shoebill staring at the camera.](https://live.staticflickr.com/3439/3259412053_92f822bee2_b.jpg)
O descriere alternativă ar trebui să descrie în mod clar și concis conținutul imaginii și contextul motivului pentru care a fost inclusă. De asemenea, nu uitați să adăugați semne de punctuație!
Anumite site-uri web și aplicații web care folosesc introducerea Markdown vor încerca, de asemenea, să adauge un text de descriere alternativ pentru dvs. De exemplu, GitHub va folosi numele fișierului pe care îl încărcați pentru atributul alt
:
Din păcate, acest lucru nu oferă suficient context pentru o persoană care nu poate vedea imaginea. În acest scenariu, doriți să comunicați de ce imaginea este suficient de importantă pentru a fi inclusă.
Exemple în acest sens pe care le veți vedea în mod obișnuit pe GitHub includ:
- O eroare vizuală, în care ceva nu arată așa cum ar trebui să fie,
- O nouă caracteristică care este propusă,
- O captură de ecran adnotată care oferă feedback,
- Grafice și organigrame care explică procesele și
- GIF-uri de reacție pentru comunicarea emoțiilor.
Aceste imagini nu sunt decorative. Deoarece GitHub este public în mod implicit, nu știți cine vă accesează depozitul sau circumstanțele lor. Mai bine să le includeți în mod proactiv.
Dacă aveți nevoie de ajutor pentru a scrie descrieri alternative, aș recomanda cu entuziasm Alt Decision Tree de la W3C și Axess Lab Ultimate Guide to Alt Texts.
3. Folosiți un limbaj simplu
Limbajul simplu și direct ajută toată lumea să vă înțeleagă conținutul. Aceasta include persoane:
- Din considerente cognitive,
- Care nu folosesc engleza ca limbă principală,
- Nu sunteți familiarizat cu conceptele pe care le comunicați,
- care sunt stresați sau multitasking și au o atenție limitată,
- Și așa mai departe.
Cu cât îi este mai ușor pentru cineva să citească ceea ce scrii, cu atât îi este mai ușor să înțeleagă și să îl interiorizeze. Acest lucru ajută la orice formă de conținut Markdown scris, fie că este vorba de postări pe blog, bilete Jira, note Notion, comentarii GitHub, carduri Trello și așa mai departe.
Luați în considerare lungimea propoziției și a cuvintelor dvs. De asemenea, luați în considerare cine este publicul vizat și gândiți-vă la lucruri precum jargonul și expresiile pe care le utilizați.
Dacă aveți nevoie de ajutor pentru a vă simplifica limbajul, trei instrumente pe care îmi place să le folosesc sunt Hemingway, Datayze’s Readability Analyzer și xkcd Simple Writer. Un alt site care merită verificat este plainlanguage.gov.
Alte considerații
Vrei să faci milă suplimentară? Grozav! Iată câteva lucruri pe care le puteți face:
Imagini
Pe lângă furnizarea de descrieri alternative, există alte câteva lucruri pe care le puteți face pentru a face accesibile imaginile dvs. introduse cu Markdown.
Marcați corect imaginile SVG
SVG este un format excelent pentru grafice, pictograme, ilustrații simple și alte tipuri de imagini care utilizează forme simple și linii clare.
Există două moduri de a reda SVG în Markdown. Ambele abordări au lucruri specifice la care va trebui să fii atent:
1. Conectarea la o imagine cu extensia de fișier .svg
Notă : eroarea pe care urmează să o descriu a fost remediată, totuși, recomand în continuare următoarele sfaturi pentru următorii doi ani. Acest lucru se datorează tacticii îndoielnice a Safari de a lega actualizările browserului cu actualizările de sistem, precum și ezitarii în privința actualizării software-ului pentru unii oameni care folosesc tehnologie de asistență.
Dacă conectați la un SVG ca imagine, veți dori să utilizați elementul img
al HTML, și nu codul de formatare a imaginii Markdown ( ![]()
).
Motivul pentru aceasta este că anumite cititoare de ecran au erori atunci când încearcă să analizeze un element img
care se leagă la un fișier SVG. În loc să o anunțe așa cum era de așteptat ca imagine, o va anunța ca grup sau va omite anunțarea completă a imaginii. Pentru a remedia acest lucru, declarați role="img"
pe elementul imagine:
<img role="img" alt="A sylized sunflower." src="flower.svg" />
2. Utilizarea codului SVG inline
Există câteva motive pentru a declara o imagine ca cod SVG inline în loc să utilizați un element img
. Motivul pe care îl întâlnesc cel mai des este să accept modul întunecat.
La fel ca și în cazul utilizării unui element img, există câteva atribute pe care trebuie să le includeți pentru a vă asigura că tehnologia de asistență îl interpretează ca imagine și nu ca cod. Cele două declarații de atribute sunt role="img"
și aria-labelledby
:
<svg aria-labelledby="svg-title" fill="none" height="54" role="img" viewBox="0 0 90 54" width="90" xmlns="https://www.w3.org/2000/svg"> <title>A pelican.</title> <path class="icon-fill" d="M88.563 2.193H56.911a7.84 7.84 0 00-12.674 8.508h-.001l.01.023c.096.251.204.495.324.733l4.532 10.241-1.089 1.09-6.361-6.554a10.18 10.18 0 00-7.305-3.09H0l5.229 4.95h7.738l2.226 2.107H7.454l4.451 4.214h7.741l1.197 1.134c.355.334.713.66 1.081.973h-7.739a30.103 30.103 0 0023.019 7.076L16.891 53.91l22.724-5.263v2.454H37.08v2.81h13.518v-.076a2.734 2.734 0 00-2.734-2.734h-5.441v-3.104l2.642-.612a21.64 21.64 0 0014.91-30.555l-1.954-4.05 1.229-1.22 3.165 3.284a9.891 9.891 0 0013.036 1.066L90 5.061v-1.43c0-.794-.643-1.438-1.437-1.438zM53.859 6.591a1.147 1.147 0 110-2.294 1.147 1.147 0 010 2.294z"/></svg>
De asemenea, veți dori să vă asigurați că utilizați un element title
(a nu fi confundat cu atributul title
) pentru a descrie imaginea, similar cu atributul alt
al unui element img
. Spre deosebire de un atribut alt
, va trebui, de asemenea, să asociați id
-ul elementului title
cu elementul svg
părinte utilizând aria-labelledby
.
Dacă doriți să aprofundați despre marcarea accesibilă a SVG-urilor, vă recomand SVG-urile accesibile de Heather Migliorisi și SVG-urile accesibile: modele perfecte pentru utilizatorii de cititoare de ecran de Carie Fisher.
Încărcare cu imagini animate întrerupte
GIF-urile animate sunt un alt lucru comun pe care îl veți găsi cu conținutul Markdown - le găsesc de cele mai multe ori sunt folosite de un dezvoltator pentru a-și exprima bucuria și frustrarea atunci când discutăm un subiect tehnic.
Chestia este că aceste animații pot distrage atenția și pot afecta negativ pe cineva care încearcă să citească conținutul tău. Considerațiile cognitive precum ADHD sunt în mod special afectate aici.
Vestea bună este că puteți include în continuare conținut animat! Există câteva opțiuni:
- Utilizați elementul
picture
, folosind tipuri de fișiere precum.mp4
și.webm
care se pot încărca într-o stare întreruptă sau - Utilizați o soluție care oferă funcționalitate de redare/pauză unui
.gif
, cum ar fi hack-ul dedetails
/summary
al lui Steve Faulkner sau biblioteca freezeframe.js.
Acest mic detaliu poate ajuta în mare măsură oamenii fără a fi nevoie să renunți la o modalitate prin care te poți exprima.
Legături
Dacă scrieți conținut online, mai devreme sau mai târziu va trebui să utilizați link-uri. Iată câteva lucruri de care trebuie să fii conștient:
Utilizați nume de linkuri unice, descriptive
Unele forme de tehnologie de asistență pot naviga printr-o listă de linkuri dintr-o pagină sau pot vizualiza în același mod în care pot naviga prin titluri. Din această cauză, doriți ca linkurile dvs. să sugereze ce se poate aștepta cineva să găsească dacă îl vizitează.
Learn more about [how to easily poach an egg](https://lifehacker.com/this-is-the-chillest-easiest-way-to-poach-an-egg-1825889759).
De asemenea, veți dori să evitați frazele ambigue, mai ales dacă se repetă. Termeni precum „dați clic aici” și „aflați mai multe” sunt vinovați obișnuiți. Acești termeni nu au sens atunci când sunt separați de contextul conținutului înconjurător fără linkuri. În plus, utilizarea termenului de mai multe ori poate crea experiențe ca aceasta:
Evitați deschiderea linkurilor într-o filă sau fereastră nouă
Anumite variante de Markdown, cum ar fi Kramdown, vă permit să scrieți cod care poate deschide linkuri într-o filă sau fereastră nouă:
[link name](url){:target="_blank"}
Acest lucru creează un risc de securitate. În plus, această experiență este atât de confuză și de nedorită încât este un criteriu de succes al Ghidurilor de accesibilitate a conținutului web (WCAG). Este mult mai bine să lăsați toți cei care vă folosesc site-ul sau aplicația web să aleagă singuri dacă doresc sau nu să deschidă un link într-o filă nouă.
Utilizați Skip Links cu discreție
Un link skip sau „skipnav” este o modalitate de a ocoli secțiuni mari de conținut. Le veți întâlni de obicei ca o modalitate de a ocoli logo-ul și navigarea principală pe o pagină web, permițând cuiva să sară rapid la conținutul principal.
Omite link-urile nu se limitează doar la acest caz de utilizare! Alte două exemple ar putea fi un cuprins și controale de sortare/filtrare pe un site de comerț electronic.
O altă utilizare excelentă pentru omiterea link-urilor este aceea de a permite cuiva să ocolească conținutul încorporat care are mai multe elemente interactive:
Aceasta este, de asemenea, o tehnică excelentă pentru a permite cuiva să ocolească o „capcană a tastaturii”, ceva întâlnit frecvent în conținutul încorporat.
Capcanele de la tastatură sunt acolo unde cineva care nu folosește un mouse sau un touchpad nu poate scăpa de o componentă interactivă datorită modului în care este construită. De obicei, le veți găsi cu widget-uri iframe
încorporate.
O modalitate bună de a testa capcanele de la tastatură? Folosiți tasta Tab !
Fără un link de ignorare, cineva care folosește tehnologie de asistență poate fi nevoit să recurgă la reîmprospătarea paginii sau vizualizarea pentru a scăpa de capcană. Acest lucru nu este grozav și este deosebit de îngrijorător dacă problemele legate de controlul motorului sunt aruncate în amestec. Sunt de părere că majoritatea oamenilor vor închide fila dacă se confruntă cu acest scenariu, mai degrabă decât să încerce să se lupte să-l pună în funcțiune.
În plus față de postarea sa grozavă despre testarea cu tasta Tab , Manuel Matuzovic ne spune despre utilizarea de către el a link-urilor de ignorare, precum și despre alte îmbunătățiri în Îmbunătățirea accesibilității tastaturii a Embedded CodePens.
Fiți atenți la link-urile de ancorare de îndreptare generate automat
Unii generatori de Markdown adaugă automat un link de ancorare pentru a însoți fiecare titlu pe care îl scrieți. Acest lucru este astfel încât să puteți concentra atenția cuiva asupra secțiunii relevante dintr-o pagină sau vizualizare atunci când partajați conținut.
Problema este că ar putea exista unele probleme de tehnologie de asistență cu aceasta, în funcție de modul în care este construită această legătură de ancorare. Dacă legătura de ancorare este înfășurată numai în jurul unui glif, cum ar fi #, , sau §, ne confruntăm cu două probleme:
- Numele linkului nu are sens atunci când este eliminat din contextul înconjurător și
- Numele link-ului se repetă.
Această problemă este discutată mai detaliat de Amber Wilson în postarea ei, Are your Anchor Links Accessible? Postarea ei intră în detaliu despre diferite soluții, precum și despre potențialele lor dezavantaje.
Indicați prezența descărcărilor
De cele mai multe ori link-urile te duc la o altă pagină sau vizualizare. Uneori, însă, destinația este o descărcare. Când se întâmplă acest lucru, browserul fie:
- Deschide o aplicație asociată cu tipul de fișier de solicitare pentru a o afișa sau
- Vă solicită să îl salvați în sistemul de fișiere al sistemului de operare.
Aceste două experiențe pot fi șocante, mai ales dacă nu poți vedea ecranul. O modalitate bună de a preveni această experiență mai puțin decât ideală este să sugerați prezența descărcării în numele linkului. De exemplu, iată cum ați face acest lucru în Markdown atunci când vă conectați la un PDF:
Download our [2020 Annual Report (PDF)](https://mycorp.biz/downloads/2020/annual-report.pdf).
Culoare
Culoarea nu este legată de Markdown în sine, dar afectează o mulțime de conținut generat de Markdown. Cele mai mari preocupări legate de culoare sunt lucrurile pe care le puteți modifica de obicei dacă utilizați un serviciu de blogging, cum ar fi WordPress, Eleventy, Ghost, Jekyll, Gatsby și așa mai departe.
Utilizați o temă în mod întunecat
Oferirea unei comutări pentru modul întunecat permite cuiva să aleagă o experiență care să-l ajute să citească. Pentru unii, ar putea fi o preferință estetică, pentru alții ar putea fi o modalitate de a evita lucruri precum migrenele, oboseala ochilor și oboseala.
Partea importantă aici este alegerea. Permiteți pe cineva care are modul întunecat activat să folosească modul luminos pentru site-ul dvs. web și viceversa (și asigurați-vă că interfața de utilizare pentru a face acest lucru este accesibilă).
Chestia este că nu puteți ști care sunt nevoile, dorințele sau circumstanțele unei persoane atunci când vă vizitează site-ul sau aplicația web, dar îi puteți oferi posibilitatea de a face ceva în acest sens.
Să ne amintim, de asemenea, că Markdown exportă HTML simplu și simplu și că este ușor de lucrat în CSS. Acest lucru contribuie mult la dezvoltarea temei în modul întunecat.
Utilizați evidențierea de sintaxă cu suport bun pentru contrastul de culoare
Markdown poate crea blocuri de cod prin împachetarea conținutului în backtick triple ( ```
). Poate crea, de asemenea, conținut inline, împachetat în elementul de code
, împachetând un caracter, un cuvânt sau o frază în un singur backtick.
Pentru ambele exemple, mulți oameni adaugă biblioteci de evidențiere a sintaxelor, cum ar fi PrismJS, pentru a ajuta oamenii să înțeleagă exemplul de cod pe care îl furnizează.
Anumite teme folosesc valori de lumină pe lumină sau întuneric pe întuneric ca alegere estetică. Din păcate, acest lucru înseamnă că codul poate fi dificil sau imposibil de văzut pentru unele persoane. Trucul aici este să selectați o temă de evidențiere a sintaxei care folosește valori de culoare care au un contrast suficient de mare încât oamenii să poată vedea de fapt fiecare glif al codului.
O modalitate de a determina dacă contrastul este suficient de mare este să utilizați un instrument precum WebAIM și să verificați manual valorile de culoare oferite de temă. Dacă sunteți în căutarea unei sugestii mai rapide și nu vă deranjează puțină auto-promovare, mențin o temă de evidențiere a sintaxei care favorizează contrastul de culoare.
Conținut care nu este acceptat de Markdown
Deoarece puteți utiliza HTML în Markdown, există anumite tipuri de conținut pe care le veți vedea mai des decât altele în Markdown. Iată câteva considerații pentru câteva dintre ele.
Utilizați atributul title
pentru a descrie conținutul iframe
Atributul de title
al HTML este folosit în mod obișnuit pentru a crea un efect de indicație. Din păcate, acest lucru provoacă o mulțime de dureri de cap utilizatorilor de tehnologie de asistență, iar utilizarea acesteia în acest fel este considerată un antimodel.
Singura utilizare bună a unui atribut title
este de a oferi o descriere concisă și semnificativă a conținutului iframe
-ului. Această descriere oferă utilizatorilor de tehnologie de asistență un indiciu despre ce să se aștepte dacă navighează în iframe
pentru a verifica conținutul acestuia.
Pentru Markdown, cea mai comună formă de conținut iframe
va fi încorporarea, cum ar fi videoclipurile YouTube:
<iframe width="560" height="315" src="https://www.youtube.com/embed/SDdsD5AmKYA" title="YouTube: Accessibility is a Hydra | EJ Mason | CascadiaJS 2019." frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
La fel ca textul linkului, veți dori, de asemenea, să evitați conținutul generic și repetitiv al title
. Codul de încorporare al YouTube este implicit la YouTube video player
, ceea ce nu este atât de grozav. Putem să facem ceva mai bine și să le actualizăm pe YouTube: Video title
. Acest lucru va ajuta mai ales dacă există mai multe videoclipuri YouTube încorporate în pagină sau vizualizare.
În ceea ce privește motivul pentru care YouTube procedează astfel, când știe deja informațiile despre titlul videoclipului, este o altă problemă.
Furnizați subtitrări și transcrieri pentru videoclipuri și audio înregistrate
Vorbind despre YouTube, un alt lucru pe care veți dori să-l faceți este să vă asigurați că videoclipul și conținutul audio au subtitrări și transcrieri.
Subtitrări
Subtitrările afișează o versiune text a conținutului video în timp real pe măsură ce este rostit, permițând cuiva care din punct de vedere biologic sau circumstanțial nu poate auzi sunetul să poată înțelege conținutul videoclipului. Subtitrările pot include, de asemenea, efecte sonore, muzică și alte indicii care sunt importante pentru a comunica sensul.
Cei mai populari furnizori de găzduire video au funcții pentru a accepta subtitrări, inclusiv afișarea lor într-un context încorporat. Partea importantă aici este să evitați craptions - revizuiți manual subtitrările generate automat pentru a vă asigura că au sens pentru o ființă umană.
Stenograme
Transcrierile sunt fratele subtitrării. Ei preiau toate dialogurile vorbite, efectele sonore și muzica pertinente și alte detalii importante și le afișează în afara videoclipului sau audio încorporat. Există multe beneficii în a face acest lucru, inclusiv a permite cuiva să:
- Citiți conținutul video și audio în ritmul propriu;
- Modificați dimensiunea și prezentarea conținutului;
- Imprimați conținutul sau convertiți-l într-un format mai ușor de digerat;
- Descoperiți mai ușor conținutul prin motoarele de căutare;
- Traduceți mai ușor conținutul.
Modul cititor
Ca și alte preocupări adiacente Markdown, Modul Reader poate oferi o mulțime de beneficii din perspectiva accesibilității.
Dacă nu sunteți familiarizat, Modul Reader este o caracteristică oferită de multe browsere care îndepărtează orice altceva decât conținutul principal. Majoritatea modurilor de citire oferă, de asemenea, controale pentru ajustarea dimensiunii textului, a fontului, a înălțimii liniei, a culorii primului plan și a fundalului, a lățimii coloanei, chiar și pentru ca dispozitivul să citească conținutul cu voce tare pentru tine!
Nu puteți declanșa direct Modul Reader utilizând Markdown. Cu toate acestea, conținutul Longform Markdown este adesea redat în șabloane care pot fi setate pentru a le face ușor de citit.
Mandy Michael ne învață cum să facem acest lucru în postarea ei, Crearea de site-uri web pentru Modul Cititor Safari și alte aplicații de citire. O combinație de HTML semantic, elemente de secționare și o picătură de microdate structurate sunt tot ce este nevoie pentru a debloca această caracteristică grozavă.
Nu trebuie să faci totul deodată
Aceasta este o postare lungă care acoperă diferite aspecte ale Markdown și modul în care interacționează cu alte tehnologii. Poate părea descurajantă, deoarece este mult conținut de acoperit în câteva domenii diferite.
Lucrul cu munca de accesibilitate este că fiecare pic ajută. Nu trebuie să abordezi toate considerentele pe care le am în această postare într-o singură schimbare majoră. În schimb, încercați să alegeți un lucru pe care să vă concentrați și să construiți de acolo.
Știți că fiecare modificare și actualizare va avea un impact direct asupra calității vieții cuiva atunci când utilizați web-ul, iar asta este enorm.
Continuați să citiți pe Smashing Magazine
- CommonMark: O specificație formală pentru Markdown
- Construirea unui API Node.js Express pentru a converti Markdown în HTML
- Construirea de biblioteci de modele cu Shadow DOM în Markdown