到目前为止,我的理解是该alt属性是必需的,不应该留空.这似乎在现有问题中得到了证实,例如这一问题.
但是,在今天阅读HTML规范时,我注意到以下内容:
根据上下文,单个图像可以具有不同的适当替代文本.
在以下每种情况下,使用相同的图像,但alt文本每次都不同.图像是瑞士日内瓦州卡鲁日市的徽章.
在这里它被用作补充图标:
Run Code Online (Sandbox Code Playgroud)<p>I lived in <img src="carouge.svg" alt=""> Carouge.</p>
它继续显示具有各种alt文本的其他示例,但是在此(以及其他几个示例)alt中缺少该文本.
该规范后来说(强调我的):
除非另有指定,否则必须指定alt属性且其值不能为空 ; 该值必须是图像的适当替代.
可以使用alt=""吗?如果是这样,何时可以接受?如果图像不需要alt文本,它应该是CSS背景图像吗?
注意:这是基于WHATWG HTML Living Standard,而不是W3C HTML5规范.
我试图MERGE通过Neo4JPHP 使用语句生成数据库.我的所有查询都在使用MERGE; 但是,它每次都会生成单独的节点,导致大量重复.
查询在单个事务中运行.我删除了周围的代码以专注于查询:
$transaction = $client->beginTransaction();
while(...) {
$pq = new Query($client, 'MERGE (n:Page {url:"'.$page.'"}) SET n.title="'.$title.'"');
$transaction->addStatements(array($pageQuery));
$h1Query = new Query($client, 'MATCH (n:Page {url:"'.$page.'"}) SET n.h1s = "['.implode(", ", $h1s).']"');
$transaction->addStatements(array($h1Query));
$scriptQuery = new Query($client, 'MATCH (n:Page {url:"'.$page.'"}) MERGE (n)-[:CONTAINS_SCRIPT]->(s:Script {url:"'.$s.'"})');
$transaction->addStatements(array($scriptQuery));
$styleQuery = new Query($client, 'MATCH (n:Page {url:"'.$page.'"}) MERGE (n)-[:CONTAINS_STYLESHEET]->(s:StyleSheet {url:"'.$s.'"})');
$transaction->addStatements(array($styleQuery));
$otherPageQuery = new Query($client, 'MATCH (n:Page {url:"'.$page.'"}) MERGE (n)-[:LINKS_TO]->(m:Page {url:"'.$match.'"})');
$transaction->addStatements(array($otherPageQuery));
}
$transaction->commit();
Run Code Online (Sandbox Code Playgroud)
现在,在几页之后运行它,它会产生6个相同的Pages 副本,一个带有title和h1s元素,其余没有. …