feat(nve-modal): opprette modal komponent, fjerne dialog komponent#935
feat(nve-modal): opprette modal komponent, fjerne dialog komponent#935amish1188 wants to merge 2 commits into
Conversation
|
Azure Static Web Apps: Your stage site is ready! Visit it here: https://brave-meadow-0c645bd03-935.westeurope.5.azurestaticapps.net |
| * @csspart base - Dialog-elementet | ||
| * @csspart overlay - Overlegget bak dialogen - den skal ikke styles | ||
| * @csspart panel - Dialogens panel | ||
| * @csspart header - Headeren | ||
| * @csspart title - Tittelen | ||
| * @csspart header-actions - Header handlinger | ||
| * @csspart close-button - Lukk-knappen | ||
| * @csspart body - Innhold | ||
| * @csspart footer - Footer |
There was a problem hiding this comment.
Samme for "Spor" og "Hendelser" :)
|
Veldig bra 😄 |
| } | ||
|
|
||
| /** | ||
| * En modal dialog for å vise viktig innhold eller handlinger som krever brukerens oppmerksomhet. |
| facilisis nisi. Phasellus eget faucibus mauris, in tincidunt mi. Curabitur urna tortor, semper vel facilisis vel, | ||
| aliquam a risus. Praesent eu sapien ornare, ultrices neque id, tincidunt metus. | ||
| <div slot="footer"> | ||
| <nve-button variant="primary" onclick="this.parentElement.parentElement.hide()">Ok</nve-button> |
There was a problem hiding this comment.
Jeg ser nve-modal eksponerer en funksjon som heter close(), men i eksemplene her brukes hide(). Kanskje litt forvirrende for de som skal lese eksempelet, ettersom hide() ikke finnes på komponentet. Og den blir ikke lukket i eksempelet.
| facilisis nisi. Phasellus eget faucibus mauris, in tincidunt mi. Curabitur urna tortor, semper vel facilisis vel, | ||
| aliquam a risus. Praesent eu sapien ornare, ultrices neque id, tincidunt metus. | ||
| <div slot="footer"> | ||
| <nve-button variant="primary" autofocus onclick="this.parentElement.parentElement.hide()">Ok</nve-button> |
There was a problem hiding this comment.
Samme her med hide() og close()
|
|
||
| Hvis modalen brukes til en handling som er vanskelig å angre, som sletting av data eller bekreftelse av en viktig handling, kan det være lurt å sette fokus på det minst destruktive valget først, for eksempel en avbryt-knapp. Hvis modalen derimot bare gir ekstra informasjon eller lar brukeren gå videre i en prosess, kan det være mer hensiktsmessig å sette fokus på handlingen som oftest brukes, som en «OK»- eller «Fortsett»-knapp. | ||
|
|
||
| Når modalen lukkes, returneres fokus som til elementet som åpnet den. |
There was a problem hiding this comment.
Kanskje skrive om setningen til noe som: Når modalen lukkes, returneres fokus til elementet som åpnet den.
|
|
||
| </CodeExamplePreview> | ||
|
|
||
| ### Autofokus et interaktiv element i modalen |
There was a problem hiding this comment.
Autofokus på et interaktivt element i modalen*
|
|
||
| Alle modaler bør ha et synlig element med knapp-oppførsel som lukker modalen, for eksempel en lukkeknapp eller en avbryt-knapp. Derfor bør lukkeknappen som standard ikke fjernes. | ||
|
|
||
| <span class="highlight">nve-modal</span> setter <span class="highlight">aria-labelledby</span> på det native modale <span class="highlight"><dialog></span>-elementet og kobler dette til <span class="highlight">label</span>-propertyen i <span class="highlight">nve-modal</span>. Derfor er <span class="highlight">label</span> påkrevd. |
There was a problem hiding this comment.
Ekstremt pirk: Men kunne vi omformulert denne setningen? Vi sier at label er påkrevd, men implementasjonen sier at en label som ikke finnes kun gir en warning, så teknisk sett er det ikke påkrevd.
Vi kunne kanskje formulert den siste setningen noe som: "Derfor skal label alltid settes for å sikre et tydelig tilgjengelig navn for skjermlesere."
There was a problem hiding this comment.
ja, fordi vi kan ikke 'tvinge' folk til å bruke påkrevde properties i Lit. så den er påkrevd fra et tilgjengelighetsperspektiv, men ikke programmatisk, på en måte. vi gjør det samme i mange andre komponenter.
jeg viser bare et varsel her, slik at folk legger merke til det når noe mangler. syns du fortsatt jeg ikke bør nevne det?
| <CodeExamplePreview> | ||
|
|
||
| ```html | ||
| <nve-button onclick="this.nextElementSibling.show()">Vis kompakt modalen</nve-button> |
There was a problem hiding this comment.
Kanskje bedre formulert som: "Vis kompakt modal"
|
|
||
| </CodeExamplePreview> | ||
|
|
||
| ## Retningslinjer |
There was a problem hiding this comment.
Bare en ide: Kunne det kanskje gitt mening å sette retningslinjer under eksemplene? Det er supert med god og mye dokumentasjon, men for de som bare vil se eksemplene raskt blir det litt mye scrolling. Hva tenker dere?
There was a problem hiding this comment.
jeg tenkte faktisk akkurat det samme. men da må vi kanskje også oppdatere det i alle andre komponenter.
jeg tenkte at vi kanskje kunne få det på plass i en ny implementasjon av dok-siden?
There was a problem hiding this comment.
Enig at eksempler kunne stått først, det er det folk vil se raskest når de går inn på et komponent
|
Bra jobbet Marcin!! 🌞 |
|
Azure Static Web Apps: Your stage site is ready! Visit it here: https://brave-meadow-0c645bd03-935.westeurope.5.azurestaticapps.net |



Etter diskusjonen med DS-styret ble vi enige om at komponenten skal hete
nve-modal, ikkenve-dialog.Bakgrunnen er at dialog-komponenten i Figma representerer modal-funksjonalitet, ikke en generell dialog. En modal er en type dialog, men med mer spesifikk oppførsel og bruk i bestemte scenarioer. Se mer informasjon her.
Denne PR-en oppdaterer dialog-/modal-komponenten med følgende endringer:
nve-dialogerstattes avnve-modalog implementerer kun typisk modal-oppførsel.label) er nå påkrevd, i tråd med WAI-ARIA-retningslinjene. Det finnes heller ingen scenarioer i Figma der modalen mangler ledetekst. Derfor erlabelnå en property i stedet for en slot, og det logges en advarsel i konsollen dersom den mangler.noHeaderfjernes (den skal alltid bli der).iconendres fra property til slot.headerActionsfjernes. Det finnes ingen scenarioer i Figma der ekstra handlinger skal vises på samme rad som lukkeknappen.openfjernes som property. Åpning av modalen styres utelukkende gjennomshow()-metoden, i tråd med anbefalingene for det native<dialog>-elementet.::partgir tilstrekkelig og mer målrettet styling, og bør dekke behovene.<dialog>.