我试图找到有关编写盲人可以访问的网页的信息,但尚未找到有用的信息.具体来说,我正在寻找的是如何向屏幕阅读器提供有关如何阅读我的页面内容的具体说明.我知道屏幕阅读器的覆盖用户设置可能被视为一种烦恼,但是,我希望可以访问的内容是诗歌,戏剧,故事和其他类型的创意写作.由于在同一个文档中经常会有很多不同的人物说话,如果有一种方法让我能够指定屏幕阅读器语音的不同特征,以便让盲人(或任何真正的人)有机会可听见,那将会很棒区分单独的说话人物.现在,我正在做的是使用叙述者告诉正在讲话的听众,这非常不自然,令人分心.
内容的一个例子可能是:
布伦达:嘿,吉米!这是怎么回事?
吉米:布兰达!看看!你听起来像个女士,我听起来像个男人!
慢孩子:噢......我听起来很慢......
那么,有没有办法让我定义标签,属性或以某种方式将脚本附加到元素,以便更改网页中特定内容的发言权?是否有我可以使用的标准,以便在IE和Firefox中以类似的方式呈现语音文本?那么本机浏览器支持,我已经看过一些用于屏幕阅读的插件,但我很好奇是否有任何内置于IE或Firefox中的文本到语音支持,所以我不必安装插件.
更新:黑客在Firefox中执行此操作的方式:
如果找到更简单的方法,请给出更好的答案!
这是一个有点前途的东西..."speak.js"引用:
"speak.js是eSpeak的一个端口,它是一个开源语音合成器,使用Emscripten从C++到JavaScript."
在源speak.js' GitHub的页面:kripken/speak.js从readme.markdown引用:
"选项
你也可以通过调用speak()来指定一些选项
speak('hello world', { option1: value1, option2: value2 .. })可用选项包括:
Run Code Online (Sandbox Code Playgroud)amplitude: How loud the voice will be (default: 100) pitch: The voice pitch (default: 50) speed: The speed at which to talk (words per minute) (default: 175) voice: Which voice to use (for a non-default voice, requires you to build speak.js to include the proper data. See Language Support below) (default: …
在任何Web浏览器中,执行以下脚本将导致'wee'发送到控制台.在节点中它发送{}.
var d = 'wee';
console.log(this.d);
Run Code Online (Sandbox Code Playgroud)
我意识到Node this在这种情况下指的是exports对象.我知道global变量,这不是我想要访问的.此外,上面的脚本也没有d在全局对象上设置.它到底在哪里?我可以console.log(d);在上面的脚本中明确地访问它,但它似乎被隐藏在一些非标准空间中,完全没有任何理由.
我也意识到删除var意志会d在global对象上声明,这是预期的行为,尽管var在顶层范围内将其值存储在与"裸"变量不同的位置似乎很愚蠢.我的意思是,模块系统不应该是某种数字预防措施来防范全球污染吗?在这里打破模式似乎很容易,因此很难做出标准的事情.
d也未在module对象上声明.
我没有必要证明我为什么要问这个问题,但我会回答第一个问题,但是"你为什么要做什么?"
var d = {};
d.bleep = 'y';
var a = Object.keys(d);
d.bloop = 'y';
d.blop = 'y';
var b = Object.keys(d);
// c = b - a;
var c = b.filter(function (item) {
if(a.indexOf(item) === -1) {
return true;
}
return false;
});
console.log(a,b,c);
Run Code Online (Sandbox Code Playgroud)
以我可以区分某些对象状态的方式d,我应该能够区分顶级范围的状态.在浏览器中,这是 …
所以我只是遇到了一些看起来像这样的代码:
checkCalculationPeriodFrequency("7D", "7D", SHOULD_MATCH);
Run Code Online (Sandbox Code Playgroud)
和
checkCalculationPeriodFrequency("7D", "8D", SHOULD_NOT_MATCH);
Run Code Online (Sandbox Code Playgroud)
让我们不必担心代码现在(或什至永远)会做什么,而不必担心最后一个参数-SHOULD_MATCH和SHOULD_NOT_MATCH
这是我以前想到的,但是认为可能做起来“不好”(因为“坏”在后现代世界中具有任何实际含义)。
上面,声明了这些值(您可能已经假设过):
private boolean SHOULD_MATCH = true;
private boolean SHOULD_NOT_MATCH = false;
Run Code Online (Sandbox Code Playgroud)
I can't recall reading about "naming" the boolean parameter passed to a method call to ease readability, but it certainly makes sense (for readability, but then, it also hides what the value is, if only a teeny bit). Is this a style thing that others have found is instagram or like, soooo facebook?