Почему не работает оператор или?
Ну так, это условие всегда true, по той простой причине, что a не может быть сразу yes и no, чтобы в обоих условиях было false. Законом де-Моргана можно перевести данное условие в!(a === 'yes' && a === 'no')
выглядит подозрительно, не находите? Поэтому да, вы перепутали оператор.
Потому что вы хотите И, а не ИЛИ там.