If you use the FGW▸ booking engine to book your tickets, or any other 'mixing deck' based booking engine if you specify a journey avoiding one of the local stops between Didcot and Reading, such as Cholsey it will force a change at Reading. That won't work on Trainline based booking engines though.
Is there not a 'via' option on trainline based booking engines?
Yes, but trainline based booking engines take account of passing points whilst mixing deck ones don't. Specifying not via Cholsey on trainline booking engines will literally force you on a route avoiding Cholsey whereas mixing deck booking engines will just force you on a train which doesn't stop at Cholsey.