On touchscreen/mobile devices, can't select token/word to remove label with trashcan

My team is wanting to use their devices so they can annotate on the go with rel.manual, but we can't select a labeled token/word so we can remove that label with the 'trashcan'. Touch target seems to be way too small. Please investigate and fix.

To reproduce:

  1. Open up a rel.manual instance on a smartphone (Android or iPhone - I have a Moto g6 running Android 9) or tablet (seen on Amazon Fire) or laptop with a touchscreen (seen on XPS 15).
  2. On the 'span' labelling view, tap a word to give it a label.
  3. Tap again to try to select it.

Expected behaviour:
The word stays selected once I remove my finger, and I can then clear the label by tapping the trash icon.

Actual behaviour:
The word appears selected and the trash icon stops being greyed out - until I take my finger away. Then the word is unselected again and I can't clear the label.

One team member reported they could select it by tapping in a very specific spot, so it sounds like the target area just isn't big enough. (They said "There’s a special point you have to click that just above the center of the word (almost between the center and the top border for the word). If you click it repetitively you can usually hit the right spot but you have to have quick reflex to then not tap it again). then it’s selected and then you can hit the trash button as normal").

I suspect this also happens for NER.

It would be much appreciated if you can fix this soon. We have a lot of sentences to label and being able to do it on devices will speed things up considerably. Many thanks.

Thanks for the report! I was able to reproduce this on my iPhone.

It looks like it might be related to how the <canvas> touch events are handled or fired on mobile. One likely explanation could be that for some reason, the event gets fired twice when you tap, so the token is selected and immediately unselected. On some devices and in specific spots (maybe the corner of the text box), the second event isn't fired or propagated, so the selection stays intact.

The manual NER interface is implemented differently and purely text-based, so this shouldn't be affected :slightly_smiling_face: Here, you can just drag agross (including diagonally) from the start to the end token to lock in a span.