阅读" aria-label"通过MSHTML返回NULL

时间:2014-06-08 11:17:50

标签: c++ internet-explorer com mshtml

我正在尝试使用C ++ / COM中的IE getAttribute方法读取HTML元素的 aria-label 属性,但这适用于其他属性(包括 aria- labelledby )它为 aria-label 返回VT_NULL。

我的代码示例如下所示:

CComVariant label;
elem->raw_getAttribute(CComBSTR(L"aria-label"), 0, &label);
if (label.vt == VT_BSTR && SysStringLen(label.bstrVal)) {
    // This is never reached
}

flags的{​​{1}}参数使用2时得到相同的结果。

示例HTML here

当我在浏览器中尝试在JavaScript中使用getAttribute时,这非常有效但由于某些原因我无法使用COM达到此属性。

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:3)

根据我的经验,可以通过DOM Level 3 getAttributeNode方法(IHTMLElement4中提供)访问一些新的HTML5新属性。

例如,要使其适用于placeholder属性,我必须使用WebBrowser Feature Control并为包含<!DOCTYPE html><meta http-equiv="x-ua-compatible" content="IE=Edge"/>的网页启用HTML5(这是一个不错的选择)在任何一种情况下的想法)。