packages/@office-iss/react-native-win32/proposals/FocusTracking.md
The asynchronous boundaries between the native host platform (NetUI) and the JS layers of React Native make the tracking of focus a difficult problem. Trying not to rely on perceived event ordering, including the unmounting of React components and the destruction of their native projections, is particularly problematic. Consider tracking focus for styling purposes; it is easy for focus styles on parents to remain post focused components unmounting.
To distinguish between focus being on a particular native element and focus being within one of it's children, we can use focus/blur and focusIn/focusOut to refer to each respectively.
Today NetUI elements that correspond 1-1 with a React component set the tag passed down as a property on the NetUI element. Making sure to clear on unmount, but before destruction of the NetUI element makes determining which component should be the target of an event much easier.
On receiving a request to remove an element from the tree, the following must happen
Note that we maintain the current bubbling focus and blur events.