Yahoo needs an authenticator for people without cell phones.
Many people still have no mobile phone, you need a secondary system for validating people. Voice codes sent to a landline or VoIP line would work, like Microsoft does. Make the codes valid for three minutes.
You could also create a mobile authenticator that does NOT use the SMS service. Not phones have SMS, and some do not even have data plans. Also fix the OpenID system!