// ==UserScript== // @name accessibility_网页工具箱 // @namespace https://www.zhihu.com/people/yin-xiao-bo-11 // @version 0.2.5 // @description 提供一些小功能,增强使用屏幕阅读器访问网页的体验 // @author Veg // @include http://*/* // @include https://*/* // @grant GM_xmlhttpRequest // @downloadURL https://update.greasyfork.icu/scripts/40910/accessibility_%E7%BD%91%E9%A1%B5%E5%B7%A5%E5%85%B7%E7%AE%B1.user.js // @updateURL https://update.greasyfork.icu/scripts/40910/accessibility_%E7%BD%91%E9%A1%B5%E5%B7%A5%E5%85%B7%E7%AE%B1.meta.js // ==/UserScript== function $query(selector) { var arr = []; var element=document.querySelectorAll(selector); for (var i=0, l=element.length; i 0) { var links = "链接" + link + "个;"; } else { var links = ""; } var button = $query('button,[role="button"],input[type="button"]'); if (button > 0) { var buttons = "按钮" + button + "个;"; } else { var buttons = ""; } var input=$query('input[type="text"],[role="textbox"], textarea'); if (input > 0) { var inputs = "文本框" + input + "个;"; } else { var inputs = ""; } var select = $query('select,[role="combobox"]'); if (select > 0) { var selects = "组合框" + select + "个;"; } else { var selects = ""; } var checkbox = $query('input[type="checkbox"],[role="checkbox"]'); if (checkbox > 0) { var checkboxs = "复选框" + checkbox + "个;"; } else { var checkboxs = ""; } var heading = $query('h1,h2,h3,h4,h5,h6'); if (heading > 0) { var headings = "标题" + heading + "个;" } else { headings = ""; } var img = $query('img[src]'); if (img.length > 0) { var imgs = "图片" + img + "张;" } else { imgs = ""; } var statistics = links + buttons + inputs + selects + checkboxs + headings + imgs; voiceTTS(statistics); } } document.body.addEventListener("click", function (k) { var t = k.target; var tag = t.tagName; if (tag == 'P' || tag == 'DIV' || tag == 'SPAN') { t.setAttribute('tabindex', '-1'); t.focus(); } }, null); function voiceTTS(TTStext) { var zhText = encodeURI(TTStext); var parameter = "&vol=7&per=0&spd=9&pit=7"; var voicebbUrl = "https://tsn.baidu.com/text2audio?lan=zh&ctp=1&cuid=xiaobo&tok="+accessToken+"&tex=" + zhText + parameter; var audio = document.querySelector('audio.audio-audios'); { if (audio !== null) { audio.src = voicebbUrl; audio.play(); } } } (function() { all(); function all() { let em = document.querySelectorAll('em'); for (let i=0, l=em.length; i { all(); }); mos.observe(document.documentElement, { 'childList': true, 'subtree': true }); */ })();