You'd be better off setting the text onto their own layers, rather than having them as part of the states. The buttons themselves would only have the icon, and then a state that says visited. You can animate in the layers to create the effect of the fade, if you wanted to replicate the fade out, you could delay the hide other layers function and each layer would have button duplicates that fade in, then hide other layers, and then those objects would hide before the timeline end.
Then you could set a visited state for the buttons that is identical to the normal state, and then a separate trigger that is looking for all the states of the buttons to be visited, then enable the next button.
if they can revisit the page, make sure it's set to resume saved state.
I would recommend not putting content text in button states that aren't visible from the stage, especially if you share files. It's easier to change and bugfix when they aren't integrated.