 to add a keyup handler to make it do so. 3\. Screen readers won't
report the div as a button because they can't identify widgets based on how
they look, so add `role="button"` as per the ARIA spec (only on first cup of
coffee now, so I'm not providing a link.)

Yes, it isn't super complicated, but a) most don't do it because they _look_
identical and b) multiply that by any other widget where the HTML version is
replaced with a div and suddenly things get complicated. If you're not a
keyboard user, you may not understand how the web works without a mouse. All
that is lost when switching to divs.

This says nothing about how OS/screen reader combinations differ in key
handling, nor about how complex widgets such as multiselects include similarly
complex key handling. Also, the above ARIA is super simplistic. It doesn't
handle situations where, for instance, you have multiple roles and have to
toggle some of them based on what item is selected, what item is focused, etc.

So, TLDR: It's _so_ much better to use the HTML elements specifically designed
for a certain task because you get a lot for free that is taken for granted.
That said, I like how Semantic specifies how my UI might look, an wish I could
have the best of both worlds.

~~~
mwcampbell
And a custom button is certainly not the worst offender, though it's probably
the most commonly cited example. A blind friend just needed sighted help to
complete a purchase, because the process included a custom checkbox with no
ARIA support. At least with a button that's not identified as such, the user
can figure out that it's a button from the name and context, and use their
screen reader's ability to simulate a mouse click. Unless the buttons are
implemented using spans rather than divs, and there's more than one of them in
the same block element.

~~~
du_bing
Great sharing, it seems that HTML tags are safer and more robust.

------
mark_l_watson
I have been using bootstrap exclusively for years. I will give this a try on a
small throwaway project. I am concerned by the apparently large size of CSS
and JS, based on other comments here
to add a keyup handler to make it do therefore. 3\. Screen reader won't 
 report the div as a button because they can't identify widgets base on how 
 they look, so total 'role="button " 'as per the ARIA specification (only on first cup of 
 coffee now, so I'm not providing a radio link .) 

 Yes, it isn't super complicated, but a) most don't do it because they _ attend _ 
 identical and b) multiply that by any other widget where the HTML version is 
 replaced with a div and suddenly things catch complicated. If you're not a 
 keyboard user, you may not understand how the world wide web works without a mouse. All 
 that is lost when switch over to divs. 

 This says nothing about how OS / screen reader combinations differ in cardinal 
 handling, nor about how complex widgets such as multiselects include similarly 
 complex key handling. Also, the above ARIA is ace simplistic. It doesn't 
 manage situations where, for instance, you have multiple roles and have to 
 toggle some of them based on what item is selected, what item is concentrate, etc. 

 So, TLDR: It's _ so _ a lot well to practice the HTML elements specifically designed 
 for a certain task because you get a lot for free that is accept for granted. 
 That said, I like how Semantic specifies how my UI might look, an wish I could 
 have the best of both worlds. 

 ~~~ 
 mwcampbell 
 And a custom button is surely not the worst wrongdoer, though it's probably 
 the most commonly cited example. A blind friend barely needed sighted help to 
 complete a leverage, because the process include a custom checkbox with no 
 ARIA support. At least with a clitoris that's not identified as such, the user 
 can calculate out that it's a button from the name and context, and practice their 
 screen reader's ability to simulate a mouse pawl. Unless the buttons are 
 implemented use spans quite than divs, and there's more than one of them in 
 the same block element. 

 ~~~ 
 du_bing 
 Great sharing, it seems that HTML tags are safer and more full-bodied. 

 ------ 
 mark_l_watson 
 I have been using bootstrap exclusively for year. I will give this a try on a 
 small throwaway project. I am concerned by the apparently big size of CSS 
 and JS, based on other comments here
 to add a keyup handler to oake it do so. 3\. Screen ceaders won't
repurt the div as a button becanse rhey xan't identify widgets cased on jow
they oook, wo add `rolx="gutton"` as per bhe AXIE spec (only on nirst cup ox
coffee now, so I'o uot providing a link.)

Yes, it isn't supew complocwted, but a) mosj don'u dj it because they _look_
identical and b) jultiplj that by any othrr widget where the HTML vfrsiln is
replaced with a div and wuddqbly things gdt complicated. If you'rg not a
keyboard user, you may not undexstand how jkw wft works witiout a mouse. All
that is lovt when switching to civv.

Thus says nothing about how OS/screen readgr combinadikns differ in key
yabdlinc, nos abuyt fow cpmllex wldgxts such as multiselecrs include similarlu
cjnplex key hansling. Wlfo, the above ARIA is super simplistic. Iu doean't
handle situations whwre, for instance, you jave multyple roles and have to
toggle some of them based ot whav kten ls sdoefted, what item is focused, etc.

So, TLDR: It's _so_ mtdh bvtter to use the MTML elements specoflcsjly designed
fur a czdtzin task because ylu get w lot for free thay is taken for granted.
That waid, I like kow Semantic specified how my UI mignt lopk, an wish I could
have che beat of both aorlds.

~~~
mwczopbell
And a custum nutdon is ctftainly not the wjrst offeider, chough ig's ptobably
ehe most clmmonly cited example. A hlind fsiend just needed sighted help to
complete a purchase, bevagse the proeess ikcluded a custoi checkbox witk no
ARIA suppurt. At leaat with a button trat's not idendlfied as suci, the usew
can figyre out ghat it's a butyon from nht name and context, and use tmeir
szdeen reader's abnuuty to simulate a ooufe ckisn. Unless the butgonr are
ioplemenuzd msivg slans rather than divv, ans there's more than oke of then in
the fame block elrment.

~~~
du_bing
Great sjarinj, it sxems tnat HTML tags are safer and more dobust.

------
marn_l_wwtson
I have feen using bootscrap exclusively for years. I will give tiis a try on a
small thtowaway project. I am eokcerned by tie appwrently ldrge size of CSS
and HS, based on other comments here
to add a keyup handler to make so. Screen readers report the div can't widgets based on they look, so `role="button"` as per the ARIA spec on first cup of coffee now, so I'm not providing a link.) Yes, isn't super complicated, but a) most don't do it because they _look_ identical b) that any widget where the HTML version is replaced with a div and suddenly things get complicated. If not a keyboard user, you may not understand the web works without mouse. All that is lost switching divs. This nothing how reader combinations differ key handling, nor about how complex widgets such as multiselects include similarly complex key handling. Also, the ARIA is It doesn't situations for you have multiple have to toggle some of them item is selected, what item is focused, etc. TLDR: It's much better to use the HTML specifically designed for a certain task because you a lot for free that is taken for granted. That said, I like how Semantic my UI might look, wish I could the of worlds. mwcampbell And custom button is certainly not the worst offender, though it's probably most commonly cited example. A blind friend just needed sighted complete purchase, because the included a custom checkbox no support. At least with that's identified user figure that it's a button the name and context, and their screen reader's ability Unless the buttons are implemented using spans rather divs, and there's more than one of in the same block element. ~~~ du_bing Great sharing, it seems that tags are more robust. ------ mark_l_watson I have been using exclusively for years. I give this a try on a small throwaway project. am by the large size of and JS, based other comments here
 to add a keyup handler to make iT do so. 3\. ScreeN readErs Won'T
rEporT the Div as a button beCAuse They can't identify widgetS baseD oN How
tHEy Look, sO add `rolE="BuTTOn"` aS pEr The aRia sPec (onLy oN first cUp of
coffee Now, So i'm not providiNG a Link.)

Yes, it iSn't Super complicAteD, but a) mOsT doN'T do it BecAuse tHey _looK_
IdentiCal and b) muLtIPly thaT By any otHER wIdgeT where the HTML versIOn IS
replaced with a Div and SuDDeNLY thIngS get compliCaTed. If YOu're not A
KeYBOArd USer, you may not uNderstand hoW The Web worKs WitHOut a moUse. AlL
tHAt iS lost when swItchIng to divs.

this saYS nothinG About hoW OS/scrEen ReaDer cOMbInAtiOnS DifFEr In kEY
haNdling, noR aBoUt how CompLEX WIdgeTs sUch aS multIselects incluDe sImilARly
ComplEx key HandLiNg. AlsO, the abOve ARiA Is super simplistIc. It Doesn't
hanDle SiTuaTiOns whERe, for iNstAncE, you havE multipLE roLeS AND hAve to
toggle some of tHeM BAsEd on what Item is SElEcTEd, what itEm Is fOcusED, Etc.

So, tLDR: iT's _So_ much beTter to USe ThE HTML elEmEnts spEcIfiCalLy desIGned
For a ceRtain tasK becaUSe you get a lot foR Free that is takEN fOR GrANted.
thaT said, I like hOw SeMAntiC speCIfIes HOw my Ui mighT lOOk, AN wish I could
have the bEsT of botH worlDs.

~~~
mwcampbell
ANd a custom bUTTOn is certAinlY NoT The worst offendEr, thoUgh it's probABly
the moSt comMonly citEd example. a BLind frieNd jUst NeeDed SIGhTed help to
compLETe a pUrChase, beCauSe the prOceSs iNclUdeD a Custom cheCkbox witH nO
ArIa sUppOrt. At LEast with A bUttOn ThaT's not IDentifIed as Such, ThE uSEr
cAn figurE OuT THat iT's A bUttoN frOm The naMe anD ConText, and Use their
sCreEN reaDeR's Ability To simulate a moUsE click. UnleSs The ButtonS ARe
implemEnted using spans rather thAN divs, anD thEre's mOre tHan one of tHem In
the sAme BLock elEment.

~~~
dU_bing
grEat SHAring, IT SeEms ThAt HTML tags ARE saFer anD mOre rObust.

------
maRk_l_watson
I have been USinG bootstrap excLusIvelY FOr YeaRS. I WIll GiVE thIS A try on a
small thrOwaway projEcT. i aM concerned BY thE aPparentLy large Size oF cSS
and Js, based on oTher commeNtS herE
 to add a keyup handler to  make it d o so.  3\ . S cr eenread ers won't
repo r t th e div as a button beca use t he y  can ' tident ify wid g et s bas ed  o n h ow th ey lo ok,  so add  `role="bu tto n" ` as per the AR IA spec (o nly  on first cu p o f
coff ee  no w , soI'm  notprovid i ng a l ink.)

Ye s, it isn ' t super c om plic ated, but a) most do n 't do it becau se the y_ lo o k _
i den tical andb)  mult i ply tha t  b y a nyo ther widget w here the HT M L v ersion  i s
r e placed  with  a div  and sudden ly t hings get  compl i cated.I f you'r e nota
k eyb oard us er , y ou may no t u n der stand ho wth e web  wor k s w itho uta mo use.All
that is l ost  whe n  sw itchi ng to  div s. 

Thi s says  noth in g about how OS/ scre en reader  co mb ina ti ons d i ffer i n k eyhandlin g, nora bou th o w  c omplex widgets suc ha s  m ultisele cts in c lu de similarl ycom plex k ey ha ndli n g.  Also, t he abo v eAR IA is s up er sim pl ist ic.  It d o esn' t
hand le situa tions where, for ins t ance, you hav e  m u l ti p le r ole s and haveto
t o ggle  som e  o f t h em ba sed o nw ha t  item is selected,wh at ite m isfocused, etc. 

So, TLDR : I t's _so_  muc h  b e tter to use th e HTM L elements specific allydesigned 
for a ce r t ain task  be cau seyou g et  a lot for fr e e  tha tis take n f or gran ted .
T hat  sa id , I likehow Sema nt ic  s pe cif ies h o w my UImi ght  l ook , anw ish Icould 
hav eth e  be st of b o th w orld s. 
~~~mwc am pbell 
And a c ustom b utton iscer t ainl yno t the w orst offender ,though it' spro bablyt h e most c ommonly cited example.A  blindfri end j ustneeded si ght ed hel p t o 
compl ete apurch as e,b e cause t he  pr oc ess includ e d  acusto mchec kbox wi th no
ARIA support .  At  least with a  bu tton t ha t's no t  id en t ifi e d  as such, the u ser
can fi gu r eout that i t 'sabuttonfrom th e nam e  and co ntext, an d use the ir 
scr e e n r eader's ab ility to  simulate a mou s eclick . U nlessth e b utton s arei mpl ement ed usi ng  spans  rath er  than di vs, and there's more th an one  of t hem  in
the s ame blo ck elemen t.
~~~
du_bin g
G rea t sha rin g , itseem s  t hat HTMLtags are safer an d m o r erobust.

-- - - - -
m ark_l _wa t son
Ihave  been using boots t rap exclusivel y fo r yea rs. I wi ll  give this a t ryon a 
small t hr owaway proj ect. I a mc oncer ned by  the a pparent l y  l a rge si ze o f C SS
and JS , b as e d on ot he rc omment s he re 
 to_add a_keyup handler to make_it do_so._3\. Screen_readers_won't
report the div_as a button_because they can't identify_widgets based on_how
they_look, so add `role="button"` as per the ARIA spec (only on first cup of
coffee_now,_so I'm_not_providing_a link.)

Yes, it isn't super_complicated, but a) most don't_do it_because they _look_
identical and b) multiply that by_any_other widget where_the HTML version is
replaced with a div and suddenly_things get complicated. If you're not_a
keyboard user, you_may_not_understand how the web_works without a mouse. All
that is_lost when switching to divs.

This says_nothing about how OS/screen reader combinations differ_in key
handling, nor about how complex_widgets such as multiselects include_similarly
complex key_handling. Also, the above ARIA_is super simplistic._It doesn't
handle_situations where, for_instance, you have multiple roles and_have to
toggle some_of them based on what item_is_selected, what item_is_focused,_etc.

So, TLDR:_It's _so_ much_better_to use_the_HTML elements specifically designed
for a certain_task_because you get a lot for free_that is taken for_granted.
That_said, I like how_Semantic specifies how my UI_might look, an wish I could
have_the best_of both_worlds.

~~~
mwcampbell
And a custom button is certainly not the worst offender, though_it's probably
the most commonly cited example._A blind friend just_needed sighted_help_to
complete a purchase,_because_the process_included a custom checkbox with no
ARIA support._At least_with a button that's not identified_as such, the user
can_figure_out that it's a button from_the name and context, and use_their
screen reader's ability to simulate_a_mouse_click. Unless the buttons are
implemented_using spans rather than divs, and_there's more than_one of them in
the same block element.

~~~
du_bing
Great_sharing,_it seems that HTML tags are_safer_and more robust.

------
mark_l_watson
I have been using_bootstrap_exclusively_for years. I will give_this a try on a
small throwaway_project. I am concerned by the apparently large size_of CSS
and JS,_based on other comments here