チェックボックスと連動して変化する表示を CSS だけで実装できないかと、以下のようなコードを書きました。これは Chrome 46 では期待通りに動き、チェック状態がテキストで表示されます。

input:before {
  content: 'not checked';
  position: absolute;
  top: 30px;
}
input:checked:before {
  content: 'checked';
}
<input type="checkbox" />

しかし Firefox や IE 11 では動作せず、開発者ツールで見ると :before が効いていないようです。

これは Chrome の独自仕様に過ぎず、他ブラウザでの動作は期待しない方がいいのでしょうか?