Short answer: improving form performance & user experience, that’s what.
Since version 2011, major entity form elements (Control, Section, Tab) have the Visibility attribute added. This attribute, which is checked by default, determines if the form element will be visible to the user when the entity form loads.
Why would you want to render some elements invisible when the form loads? Here are some common reasons:
- Conditional logic: The form has some business logic related process which requires displaying some elements according to the user actions, e.g, hide Government Id attribute if the user selected Organization as Customer Type.
- Hiding built in required controls which can not be removed from the form and are meaningless to the end user.
- Hiding controls that are used to support the form business logic and has no meaning or use to the end user.
How can the Visibility attribute improve form performance and UX?
Business logic often requires script to hide/display form elements according the user actions. When the form loads, only a subset of controls should be visible to the user.
This approach will improve form performance & UX because of the following reasons:
- Less form controls to render: the form will load faster because it has less controls to render. In control heavy forms/slow machines, this is substantial.
- Less code lines to execute: since custom hiding related code/Business Rules logic is removed, the onLoad event will complete and turn control to the user faster. You can write less code by hiding/displaying containers such as Tabs and Section rather than relating to each individual control. Again, think control heavy forms.
- Reduce visual load: no element flickering on the form will provide better UX.
User experience is critical to the application acceptance and over whole rating by users. Developers sometime miss these problems because the from loads fast enough on their dev machine.
For users who open record forms many times a day, even 2 seconds less form loading time can make a major difference.