Use DOM.sinkEvents and DOM.setEventListener on the child element on 'attach' of the widget (and make sure to set the EventListener back to 'null' on 'detach' or you'll have memory leaks on IE).
The only alternative I can think of would be to use JSNI to add handlers in the "capture" phase on the widget's root element; except for IE (at least 6/7, maybe 8) where you'd use the focusin and focusout events (still using JSNI, as addBitlessDomHandler doesn't work on IE, on-purpose)