The CSGO says that an intermediary such as a travel agent must pass any refunds they receive from suppliers onto their clients. But where they cannot recover refunds from suppliers, as seen with airlines, a reasonable offer to the consumer for postponement is considered fair.
A voucher valid for two to three years is viewed as a reasonable offer for postponement, and the CSGO encourages consumers to accept this if it is feasible. Of course, there are several circumstances where the consumer was meant to travel for a specific event that has now passed (e.g. weddings, conferences, etc.) and the voucher should be reasonably flexible enough for the consumer to still use it in a meaningful way, for instance allowing for the destination to be amended.