What exactly is the rule for applying .activated class?

:active state will not work on Android devices on non-anchor elements. Technically, it will work only on <a> elements.

Though you can make it work with a little cheat:

<body ontouchstart="">

This will tell the android device to handle touch events and pseudo class :active will work correctly on all elements.