News for hackers. Stuff that matters.
Re:Yelp Is Replacing Restaurants’ Phone Numbers So Grubhub C... by robocat on Tuesday August 06, 2019 @04:58PM (#20629563)
Unfortunately if your site is interactive, you still need to know if dealing with touch versus keyboard.

For touch, extra spacing is needed around click targets (allow for fat fingers).

For some touch data entry, you need to allow for different input methods, because accessing symbols and numbers is different from a real keyboard versus a virtual keyboard. Also a virtual keyboard: covers some of the page, causes scroll, causes resize, can cause zoom, loses fixed headers. Avoiding the effects of those issues often requires some compromises.

For touch, you must register onclick events on a div near to an input that can be tapped. Otherwise the browser resizes the touch zone to be bigger than the actual input, and you can't tap the div.

There are many many subtleties to how browsers treat touch events and virtual keyboards

Re:Yelp Is Replacing Restaurants’ Phone Numbers So Grubhub C... by MaulingMonkey on Tuesday August 06, 2019 @09:33PM (#20631283)
> Unfortunately if your site is interactive, you still need to know if dealing with touch versus keyboard.

Detecting a mobile browser vs regular won't handle this well for laptop touchscreen users... especially for anyone using a laptop in a tablet mode. I suspect the larger targets would also help some regular keyboard + mouse users with poor fine motor control.

Re:Yelp Is Replacing Restaurants’ Phone Numbers So Grubhub C... by robocat on Tuesday August 06, 2019 @10:00PM (#20631404)
Similarly, we try to support tablet users (iOS/Android) with external keyboards or mice. I totally agree with your point (I purchased a laptop with a touchscreen for testing).

For tablets we optimise for touch, but I also make sure keyboard and mouse work (e.g. I am extremely careful to support click events, not just touch events). I can do this because we have our own framework (when I developed our product, other frameworks simply did not work well with corner cases). Writing our own framework means I am very familiar with the various quirks and workarounds.

However, browsers force us to make compromises, because we simply can't detect or fix certain problems that affect the UI.