SQL Server Always On AG – Is a Passive Secondary Required for Automatic Failover?
You can fail over to a readable secondary.  The author is either wrong, or just using some confusing terminology.  Reading the exact quote you included, I'd lean towards the former explanation.  But I don't know all the context around that statement.
Here I have an AG - all replicas are configured to be readable when they are in the secondary role, and NODE2 is set up for automatic failover:

Here's the current state of things on the AG dashboard:

I'll go ahead and connect directly to NODE2 (sync secondary) and start some queries running:
SELECT COUNT_BIG(*)
FROM dbo.A;

WAITFOR DELAY '00:00:01';

GO 100

And then do something to cause an automatic failover to NODE2.  In this case, I will kill the SQL Server service on the current primary (NODE1).
Now I'll check the AG dashboard, and can see that NODE2 automatically became the new primary.

Note that during the failover, my SSMS window running queries on NODE2 got this message:

Msg 596, Level 21, State 1, Line 0
Cannot continue the execution because the session is in the kill state.
Msg 0, Level 20, State 0, Line 0
A severe error occurred on the current command.  The results, if any, should be discarded.

Which is normal (clients being disconnected while the database undergoes recovery as part of becoming the primary).  I retried the query and it continued running.  I wouldn't have to do that if I were connecting to the listener via read-only intent.