There are 2 ways of creating and dealing with popups gracefully:
Simple.
Code:
a href="#" onclick="{mypopupcode}; return false"
The purpose of this is to stop the browser doing the Anchor-jump to the top of the page, looking for the blank a name="" anchor ('cos of a href="#").
Slightly more complex.
Code:
a href="mypopup.html" target="popup" onclick="if(mypopup(this.href,this.target,popupsettings)) return false"
This one is based on [i]mypopup[/b] being a function you write, not relying on the window.open statement. The function "mypopup" will return NULL if the browser/screen reader/other web tool doesn't support the window.open facility and therfore open the popup page as it would normally do without the popup being there ... but if the function returns something, then the "return false" kicks in and stops the href doing its normal thing, while your pop up is popping away as you designed ...
[If the above looks like a canned response, it's cos I had it written months ago and it's an aticle on an old website of mine...]
So: if you create a javascript function to deal with your popups, have it return true if the popup works - that way you can determine if the javascript works and therefore return false to the regular browser behaviour and not load the link normally, but if the function refturns false, then your regular browser behaviour kicks in and your link still opens in a new window via the target="popup" HTML script.