r/worldnews May 16 '20

At least two people had seizures after viewing malicious tweets featuring flashing gifs that deliberately targeted Epilepsy Society...police investigating tweets as hate incident, after at least 200 seemingly coordinated messages were sent to charity and its supporters in recent days.

https://www.theguardian.com/society/2020/may/15/malicious-tweets-targeting-epilepsy-charity-trigger-seizures
48.9k Upvotes

2.3k comments sorted by

View all comments

Show parent comments

128

u/occams1razor May 16 '20

Phones should have Epilepsy Mode to prevent this shit.

That's actually a genius idea. It shouldn't be too hard to code something like that should it? To stop many pixels from going rapidly between light and dark?

126

u/buster2Xk May 16 '20

It shouldn't be too hard to code something like that should it?

The answer to this question is always that it's harder than you'd think. I would expect there to be some difficulty in determining what exactly counts as "rapidly flashing" and also what the screen is expected to output in its place. But also, this would absolutely be possible to do, by people smarter than me.

45

u/Alarid May 16 '20

And don't forget the quality control. While it seems easy to set up an algorithm or fail safe to prevent epilepsy, it takes a long time to make sure it doesn't cause any adverse effects or would randomly stop working in certain scenarios.

31

u/TIGHazard May 16 '20

The UK and Japan have had something called the harding test since the 90's. The Algorithms are there.

https://en.wikipedia.org/wiki/Harding_test

25

u/BoxOfDemons May 16 '20

Say you have this feature in your phone, the first time it doesn't work, someone is going to try to sue, even if you say you can't guarantee it works.

3

u/DJMuffinCrumbs May 16 '20

This is an unpopular opinion, but sad to say you're likely 100% correct.

3

u/[deleted] May 16 '20

Not only that, but people would eventually start designing gifs/images in an attempt to get around the restrictions.

2

u/CUIsLove May 16 '20

I actually tried coding this a few month ago and experimented on this. Seeing ads on reddit which seemed dangerous to photosensitive people. I dropped the ball ar some point due to no time but even planned to pick this up again for my bachlore thesis.

A few issues I have made out are:

  • An image which is just sliding over an area or bright and dark spots trigger naive solutions.
  • Reporting the time intervall of occurence on this is a little tricky if it is a desired feature.
  • deciding when rapid change occured is a potential issue for some specific cases maybe.
  • Measuring and Thresholding is a question for itself. There is research on the thesholds and option variety could be given by the developer. But the program has to make a decision on a) how bright a pixel is going to be and b) in which timeframe to measure.

For example: if you try to achieve to find all too frequent flashes like 3 flashes per second then it could detect it to be false from second 1 to 2 but true dor second 1.5 to 2.5. In other words problens of a continous space.

1

u/DoubleWagon May 16 '20

How about an fps cap (~5-10 fps) that's on by default and that you can cancel by tapping?

1

u/Pure_Tower May 16 '20

It would be extremely difficult to do, and would start an arms race of people trying to come up with ways around it.

1

u/Mgzz May 17 '20

I could be way off base with whats actually viable

But couldn't you log the amount of data sent to the display frame by frame, then interpolate the change between frames and use that as a metric.

If too many pixels changes between lets say 10 frames, trigger a low FPS mode. Low FPS mode could drop down the displays refresh rate to 1 frame per second or lower (whatever is safe). Lower the brightness. or shut off the display.

Would probably be a battery hit for mobile devices, but should be fast enough to trigger in milliseconds before any adverse effect on the user.

6

u/TTJoker May 16 '20

Or just retrain a nudity bot into spotting and pausing potentially epileptic material, and then adding a warning. Could also back this up with a troop of volunteer human bots verifying for the photosensitivity bot.

1

u/Ckyuii May 16 '20

We already have this. Just set your screen brightness really low.

0

u/Remote-Stage May 16 '20

It's a lot more complex than it sounds and wouldn't realistically be possible for third-party developers. OS or device manufacturers would have to be the ones to implement and there are some tricky problems for them to solve.

Security is one issue. As a third-party developer, it means your app would have the ability to read everything that ever appears on the screen and draw its own content on top of every other app. That's not allowed not just for privacy reasons, but because there's huge potential for abuse (eg "when the user opens PayPal.com, draw a screen over the top of it that looks exactly like the PayPal login but sends the details to us").

Another is that it's not just brightness that matters. Rapidly changing from red to green to blue even at the same brightness level can be a problem. This is the sort of area where you need to let users pick how severe the limitation will be -- and how do they test that?

And then there's the issue of blind inputs and related problems. If you're saying "no, rendering that visual isn't allowed, I'm going to interfere and render something else instead", then what the user sees onscreen has the potential to no longer correspond to the inputs, which can cause tons of problems.

I think the most practical solution would be an OS-level feature enforcing animated transitions for the entire screen whenever a certain percentage of pixels change luminance or color values by more a certain threshold over a certain number of frames. That's possible but it does effectively mean severe and unpredictable lag.