Zothandizira zimamveka ngati vuto laling'ono kwambiri la UI lomwe mungakhale nalo. Iwo ndi ang'onoang'ono ndipo nthawi zambiri amabisika. Wina akafunsa momwe angapangire imodzi, yankho lachikhalidwe limabwereranso pogwiritsa ntchito laibulale ya JavaScript. Ndipo kwa nthawi yaitali, amenewo anali malangizo anzeru. Inenso ndinachitsatira icho. Pamwamba, chida ndi chosavuta. Yendani pamwamba kapena yang'anani pa chinthu, onetsani kabokosi kakang'ono kokhala ndi mawu, kenaka mubiseni wogwiritsa ntchito akachoka. Koma mukatumiza imodzi kwa ogwiritsa ntchito enieni, m'mphepete mwake mumayamba kuwonekera. Ogwiritsa ntchito kiyibodi Dinani pa choyambitsa, koma osawona chida. Owerenga pazenera amalengeza kawiri, kapena ayi. Chidacho chimagwedezeka mukasuntha mbewa mwachangu kwambiri. Imadutsana ndizomwe zili pazithunzi zazing'ono. Kukanikiza Esc sikutseka. Kuyikirako kumasokonekera. M'kupita kwa nthawi, zida zanga zidakula kukhala chinthu chomwe sindinkafunanso kukhala nacho. Omvera zochitika adawunjikana. Kusunthika ndi kuyang'ana kunayenera kusamaliridwa mosiyana. Kudina kunja kumafunika milandu yapadera. Makhalidwe a ARIA anayenera kusungidwa mu kulunzanitsa ndi manja. Kukonzekera kwakung'ono kulikonse kumawonjezeranso lingaliro lina. Malaibulale anathandiza, koma analinso ngati mabokosi akuda omwe ndimagwira nawo ntchito m'malo momvetsetsa bwino zomwe zikuchitika mseri. Izi ndi zomwe zidandikakamiza kuyang'ana Popover API yatsopano. Ndinkafuna kuwona zomwe zingachitike ndikamanganso chida chimodzi pogwiritsa ntchito mtundu wamba wa osatsegula popanda kugwiritsa ntchito laibulale. Pamene tikuyamba, ndizofunika kudziwa kuti, monga ndi zina zatsopano, pali zinthu zina zomwe zikukonzedwabe. Izi zati, pakadali pano ili ndi chithandizo chamsakatuli wamkulu, ngakhale pali zidutswa zingapo ku API yonse yomwe ikuyenda bwino. Ndikoyenera kuyang'anitsitsa Caniuse pakadali pano. Chida cha "Zakale". Pamaso pa Popover API, kugwiritsa ntchito laibulale ya zida sikunali njira yachidule. Zinali zosasintha. Osakatula analibe lingaliro lachilengedwe la chida chomwe chimagwira ntchito pa mbewa, kiyibodi, ndi ukadaulo wothandizira. Ngati mumasamala za kulondola, njira yanu yokhayo inali kugwiritsa ntchito laibulale, ndipo ndizomwe ndidachita. Pamwamba, chitsanzocho chinali chofanana nthawi zonse: chinthu choyambitsa, chida chobisika, ndi JavaScript yogwirizanitsa ziwirizo.
Laibulale inali ndi mawaya omwe amalola kuti chinthucho chiziwoneka pamwamba kapena kuyang'ana, kubisala pa blur kapena kuchoka pa mbewa, ndikuyikanso/kusintha kukula pa mpukutu.
Pakapita nthawi, chidacho chikhoza kukhala chosalimba. Zosintha zazing'ono zidabweretsa chiopsezo. Zosintha zazing'ono zidayambitsa kubweza. Choyipa chachikulu, kuwonjezera zida zatsopano zidatengera zovuta zomwezo. Zinthu zidagwira ntchito mwaukadaulo, koma sizimamveka kuti zakhazikika kapena zatha. Umu ndi momwe zinthu zinalili pomwe ndidaganiza zomanganso chidacho pogwiritsa ntchito Popover API ya msakatuli. Nthawi yomwe Ndidayesa The Popover API Sindinasinthe kugwiritsa ntchito Popover API chifukwa ndinkafuna kuyesa china chatsopano. Ndinasintha chifukwa ndinali wotopa ndikukhalabe ndi zida zomwe ndimakhulupirira kuti msakatuli amayenera kumvetsa kale. Poyamba ndinkakayikira. Ma API ambiri atsopano amalonjeza kuphweka, koma amafunabe guluu, kagwiridwe kake, kapena malingaliro obwerera kumbuyo omwe amangopanganso mwakachetechete zovuta zomwe mukuyesera kuthawa. Chifukwa chake, ndinayesa Popover API m'njira yaying'ono kwambiri. Izi ndi zomwe zinkawoneka:
1. Kiyibodi "Ingogwira Ntchito" Thandizo la kiyibodi limadalira zigawo zingapo zomwe zimakhazikika bwino: kuyang'ana kumayenera kuyambitsa chida, kusamveka kumayenera kubisala, Esc imayenera kulumikizidwa pamanja, komanso nthawi yofunikira. Ngati mwaphonya kachingwe kakang'ono, chidacho chikhoza kukhala chotsegula kwautali kwambiri kapena kutayika chisanawerengedwe. Ndi mawonekedwe a popover okhazikitsidwa kukhala auto kapena manual, msakatuli amatenga zoyambira: Tab ndi Shift+Tab amachita bwino, Esc imatseka chida nthawi zonse, ndipo palibe omvera owonjezera omwe amafunikira.
Zomwe zidasowa pa codebase yanga zinali zowongolera ma keydown padziko lonse lapansi, malingaliro a Esc-specific cleanup logic, ndi macheke a boma panthawi yakusaka kiyibodi. Chochitika cha kiyibodi chinasiya kukhala chinthu chomwe ndimayenera kusunga, ndipo chinakhala chitsimikizo cha msakatuli. 2. Screenreader Predictability Ichi chinalikusintha kwakukulu. Ngakhale ndikugwira ntchito mosamala kwa ARIA, machitidwewo adasiyana, monga ndidafotokozera kale. Kusintha kwakung'ono kulikonse kumakhala kowopsa. Kugwiritsa ntchito popover yokhala ndi gawo loyenera kumawoneka ndikumveka kokhazikika komanso kodziwikiratu momwe ziti zichitike:
Ndipo apa pali kupambana kwina: Pambuyo posintha, Lighthouse idasiya kulengeza machenjezo olakwika a boma la ARIA pakuchitapo kanthu, makamaka chifukwa palibenso machitidwe a ARIA kuti ndilakwitse mwangozi.
3. Kuwongolera Kwambiri Focus inali yosalimba. M'mbuyomu, ndinali ndi malamulo monga: lolani kuti muyambitse chida chowonetsera, sunthani malingaliro anu pachida ndipo musatseke, yambitsani bluring chikayandikira kwambiri, ndikutseka chida ndikubwezeretsani kuyang'ana pamanja. Izi zinagwira ntchito mpaka palibe. Ndi Popover API, msakatuli amakhazikitsa mtundu wosavuta pomwe kuyang'ana kumatha kusuntha mwachilengedwe. Kutseka kwa popover kumabweretsanso kuyang'ana kwa choyambitsa, ndipo palibe misampha yosawoneka kapena nthawi yotayika. Ndipo sindinawonjezere code yobwezeretsa; Ndinachichotsa.
Mapeto Popover API ikutanthauza kuti zida sizilinso zomwe mumatengera. Ndi zomwe msakatuli amamvetsetsa. Kutsegula, kutseka, khalidwe la kiyibodi, Kuthawa kwapang'onopang'ono, ndi mwayi waukulu wopezeka tsopano umachokera papulatifomu yokha, osati kuchokera ku JavaScript ya ad-hoc. Izi sizikutanthauza kuti malaibulale opangira zida atha ntchito chifukwa akadali omveka pamakina opangira zovuta, makonda olemera, kapena zolepheretsa zakale, koma zosasinthika zasintha. Kwa nthawi yoyamba, chida chosavuta kwambiri chingakhalenso cholondola kwambiri. Ngati mukufuna kudziwa, yesani izi: Ingosinthani chida chimodzi pazogulitsa zanu ndi Popover API, osalembanso chilichonse, osasuntha makina onse, ndipo ingosankhani imodzi ndikuwona zomwe zikusoweka pamakhodi anu. Pulatifomu ikakupatsirani zoyambira bwino, kupambana sikungokhala mizere yocheperako ya JavaScript, koma ndi zinthu zochepa zomwe muyenera kuda nkhawa nazo. Onani gwero lathunthu mu repo yanga ya GitHub. Kuwerenga Mowonjezereka Kuti mutsike mozama muzambiri ndi ma API ofananira:
"Poppin 'In", Geoff Graham "Kufotokozera Ubale Pakati pa Popovers ndi Dialogs", Zell Liew "Kodi popover = lingaliro?", Una Kravets "Ma Invoker Commands", Daniel Schwarz "Kupanga Chidziwitso Chotseka Chokha ndi HTML Popover", Preethi Tsegulani UI Popover API Explainer "Popani (kupitilira) Mabaluni", John Rhea "CSS Anchor Positioning", Juan Diego Rodríguez
MDN imaperekanso zolemba zaukadaulo za Popover API.