:visible is actually looking for display:none (and a couple of other circumstances) but (I understand) considers visibility: hidden as still being visible - since it still occupies space in the layout?!
I suppose most of the time this is not a concern as people tend to be confirming the application of show() or hide().
"I'm here to save your life. But if I'm going to do that, I'll need total uninanonynymity
." Me Myself & Irene
Validate your HTML