Keyboard-based interface navigation

I want to create an interface navigatable through keyboard. The interface is somewhat like nested DVD menus, and it is not known in advance how many buttons there will be or where they will be placed.
So for example you would be on
how would I go about enabling keyboard navigation?
The purpose is to enable keyboard navigation for complex management screens for a game I am doing;

I am thinking to add all buttons to a manager, then select the first one, then on keypress, select the closest in the direction pressed. But it seems overkill to me, and I guess in some edge cases, some buttons will be unselectable.

I would like this to be as independant and reusable as possible, which means I would like it to work with any clickable object, not just buttons, and certainly not my own custom class of buttons. This also means the buttons might be placed through the flash IDE and so placing them on a grid is not an option (I’d like this to be easy to use for non-techies).

Anyone has a suggestion?
Anything like that exists already?

I am really lost here.
[SIZE=1][ethical warning: cross-posting in and][/SIZE]