What are the considerations while developing a Web Application that Exposes Stable Selectors?

What is the information to be considered while developing to get stable selectors for the automation?

Please note below points for the web application so that it exposes the selectors -

1. If the application is in Silverlight :
If the windowless attribute is set to false in the <object> HTML element, then the selectors from Silverlight app  can be obtained without the extension, by using Active Accessibility or UI Automation.
This mode can be selected by pressing F4 while spying the element or from the UiExplorer.

2. For Java application :
The jre or jinitator used should be above than version 3 and should be based on AWT.
more information can be accessed from the below link

3. For any Normal Web Application:-
The normal web application can be automated easily without the use of any extension. However, while developing  Unique attributes can be added to the objects. This way it will have more stable and accurate selectors.

On possibility, Rest APIs can be added and exposed to it. Using Rest API in workflows to perform the normal operations helps us to automate it easily and in a more reliable way. As REST APIs do not have dependencies on UI.