It is a really good question.
I have for years sat in the camp that you should always disable over hiding UI.
The arguments for disabled buttons:
- If it is sequential flow where uses complete tasks in order they controls should be visible but disabled.
- It can reduce confusion as UI elements do not keep disappearing
- You can reduce the instructions as a disabled button already tells the user they need to do something
- It gives a sense of direction to the course as it pushes them forward as it unlocks
The arguments against:
- Reduces cognitive load, users can focus more on the task and removes distractions.
- Simplicity, saves space and allows us to change the controls at will
- Can cause confusion as users are trying to work out what the prerequisites are to unlock the next button
- Disabled controls contrast don't have to be accessible so may make them invisible
- users may not understand it is disabled and click it anyway
Sometimes it is better to test, I still go with disabled, but I have one caveat controls that never get enabled always get hidden, big. the back button on the first slide and next on the last.