web-dev-qa-db-ja.com

WordPressおよびW3Cによる検証の検証

私は最近WordPressの oEmbed 機能を利用するテーマを作りました。

可能であれば、私のテーマはW3Cを介して検証するのが好きです。このWebサイトのコンテンツはVimeoのビデオによって運営されているので、30を超える検証エラーが発生しています。

検証ツールは次の属性にフラグを立てます。

frameborder
webkitallowfullscreen
mozallowfullscreen

私はallowfullscreen属性がHTML5プレーヤーに必要であることを知っています、しかし検証に合格する解決策があるかどうか疑問に思いましたか?

webkitallowfullscreenmozallowfullscreenはもう必要ではないことがわかります。 https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe

3
Sam

class-oembed.php ファイルはoEmbedsに関して利用可能なフィルタのいくつかを明らかにします。

oembed_result または oembed_dataparse フィルタを使用して、取得したHTMLを変更できます。投稿メタにキャッシュされる前のVimeo。これが後者の例です。

add_filter( 'oembed_dataparse', function( $return, $data, $url )
{
    // Target only Vimeo:
    if(
            is_object( $data ) 
        &&  property_exists( $data, 'provider_name' )
        &&  'Vimeo' === $data->provider_name
    )
    {
        // Remove the unwanted attributes:
        $return = str_ireplace(
            array( 
                'frameborder="0"', 
                'webkitallowfullscreen', 
                'mozallowfullscreen' 
            ),
            '',
            $return
        );
    }
    return $return;
}, 10, 3 );

例:

前:

<iframe src="//player.vimeo.com/video/32001208" 
        width="584" 
        height="329" 
        frameborder="0" 
        title="Earth" 
        webkitallowfullscreen 
        mozallowfullscreen 
        allowfullscreen></iframe>

の後:

<iframe src="//player.vimeo.com/video/32001208" 
        width="584" 
        height="329"  
        title="Earth"   
        allowfullscreen></iframe>

xhtmlに関する追加の注意事項:

Vimeo oEmbed API をチェックアウトすると、デフォルトのxhtml=falseを持つxhtmlパラメータがあります。あなたは例えば試すことができます:

https://vimeo.com/api/oembed.json?url=https%3A//vimeo.com/32001208

vs.

https://vimeo.com/api/oembed.json?url=https%3A//vimeo.com/32001208&xhtml=true

だから代わりに:

webkitallowfullscreen mozallowfullscreen allowfullscreen

我々が得る:

 webkitallowfullscreen="webkitallowfullscreen" 
 mozallowfullscreen="mozallowfullscreen" 
 allowfullscreen="allowfullscreen"

XHTMLの検証を目指したい場合は、例えばoembed_remote_get_argsを使ってこれを修正することができます。しかし、私はそれをテストしませんでした。

5
birgire