That is a subtle point and I was curious if someone would ask about it!
Unvote links last for an hour. This is because the main use of voting data is to rank posts, and that's time sensitive. If we let people go back and unvote after hours have gone by (let alone years), that would be rewriting history, or counterfactually messing with it.
Even an hour is arguably too long. Since the main purpose of this feature is to correct misclicks and over-hasty impulses, a few minutes would probably be enough.
How about in lieu of a stylesheet/visual change (since those seem to be few in number over the years), have upvote/downvote status result in a HTML element class attribute that browser-plugins can leverage for custom styling?
I was always under the impression that the reason you couldn't undo was purely to encourage putting thought into your votes, instead of clicking after the first sentence, getting through the rest of the post, and looking to take your upvote back.
Guess I was wrong. I'd say 30 seconds should be enough, with this thought in mind =]
The main use case for the unvote button is for mobile, and on a spotty mobile connection it might take a lot longer than 30 seconds until the action registered.
Sometimes I'll vote on a comment, and then as I'm reading the replies and clarifications, or other comments elsewhere in the discussion, I'll realize I misunderstood something and will want to go back and change my vote.
I'd agree an hour is too long; I would only really unvote if it was accidental (ie, immediately) or upon perusing the other comments or data that made me rethink my moderation (which would reasonably be ~5m or so).
Unvote links last for an hour. This is because the main use of voting data is to rank posts, and that's time sensitive. If we let people go back and unvote after hours have gone by (let alone years), that would be rewriting history, or counterfactually messing with it.
Even an hour is arguably too long. Since the main purpose of this feature is to correct misclicks and over-hasty impulses, a few minutes would probably be enough.