首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无障碍设计

清晰的视觉线索,会让他们很容易弄清楚输入框在哪,面积有多大。 下图是一个很流行的笔记app的输入框。 ? 如果我想搜索,我该点哪?用于强调位置的光标都被移除了。...menu 为了说明这是一个「菜单按钮」,它需要一个「文字替代方案」,比如「menu」来传达和图像相同的信息。...如果一个链接或按钮在屏幕上不可见,则不可能口头告知「clidked」。如果一个 keyboard-only user 在一个页面上看不到按钮,怎么才能通过一个空白区域导航去想去的地方?...左边错误做法:用户没法与弹窗交互; 右边正确做法:焦点落在2个按钮上,用户可选择相应操作,或者关闭弹窗。...这两个按钮的添加让「自动完成」输入模式变得混乱。 ?

1.4K60

如何引导访客注册

很多时候,这个关键的任务落在了再普通不过的“注册”按钮的肩上,而这个可怜的按钮在产品开发中却往往得不到任何考虑和关注。 如果你花一点时间来考虑注册按钮的措辞,也许就能大幅增加注册用户转化率。...(当然在访客成为用户之后的事情至关重要,但一旦你有了用户的邮件地址,事情都会变得容易得多。) 各初创公司的注册按钮 为什么“注册”按钮起不了作用 它们被忽略了。...不论这些注册按钮是蓝色还是绿色,甚至是地狱火一般的橙色。 它们的要求很盲目。别以为访客知道你为什么让他们注册,人们不会细细阅读网页,通常都是浏览。...他们很可能轻易错过关于免费试用或是产品能提供的主要好处的部分。 它们没有提供任何价值。要求“注册”对更改访客的想法没有任何帮助,他们的想法不会从“我为什么要注册?”到“我要注册!”...这能防止用户忽略你的注册按钮。 给予,而不是索取。 “获得访问”和“注册”做的是同一件事情,但是一个会让人觉得他将获得一些好处,而另一个不会。 鼓动人们采取行动。

1.2K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    WPF 如何知道当前有多少个 DispatcherTime 在运行

    在遇到没有任何的交互时,此时出现的主线程卡的问题,可以优先尝试了解是否 DispatcherTime 定时器的问题 如以下代码,在界面创建一个按钮,点击按钮时将会创建和运行 DispatcherTime...根据 Dispatcher.CurrentDispatcher 的定义,此 CurrentDispatcher 是 ThreadStatic 线程静态,因此以上调试断点必须落在主线程执行的代码 ?...在开始之前,需要加载 WindowsBase.dll 的符号,同时我也推荐使用 dotnet core 或 .NET 5 版本的 WPF 框架进行调试,因此此框架可以有源代码支持。...为什么需要加载 WindowsBase.dll 的符号?...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。

    1.1K30

    安装Python那点事,最详细的教程

    我要学编程 小码匠:今天学什么? 老码农:安装环境。 小码匠:为什么还不让我编程啊?我看你明天回来都写代码? 老码农:那是Java的,不是Python的。 小码匠:好麻烦。 安装 小码匠:怎么安装?...python-install01-00-02 小码匠:行行行,你还拿喇叭喊,我认了,不就他们认识我, 我不认识他们吗? 老码农:这就对了,遇到不会的,一个字:学,三个字:必须学,四个字:必须拿下。...老码农:当然有了,Python也是越来越强大的,至于哪些新东西现在不能教给你。 小码匠:为什么不教我? 老码农:不会。 小码匠:干脆。...老码农:那个是他的兄长。 老码农快报 Python有2版本和3版本,前段时间龟书放言:不要对 Python 4.0 抱有希望,可能不会有的。...Windows 启动CMD,然后输入命令即可 延伸知识点 老码农:小码匠,下面内容请忽略 小码匠:为什么? 老码农:这些知识小孩不宜,过段时间在教你吧。 小码匠:嗯,好吧。

    38020

    WPF 如何知道当前有多少个 DispatcherTimer 在运行

    在遇到没有任何的交互时,此时出现的主线程卡的问题,可以优先尝试了解是否 DispatcherTime 定时器的问题 如以下代码,在界面创建一个按钮,点击按钮时将会创建和运行 DispatcherTime...DispatcherTimer 定时器是由哪个业务模块启动创建的,此时可以添加函数断点,添加函数断点步骤相对复杂 在开始之前,需要加载 WindowsBase.dll 的符号,同时我也推荐使用 dotnet...为什么需要加载 WindowsBase.dll 的符号?...github 和 gitee 欢迎小伙伴访问 可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码 git init...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。

    1K30

    ROS2机器人笔记20-10-03

    如果在自定义环境中,需要桥接ROS1和ROS2,通常不会很顺利,系统默认方式支持不佳,可以参考如下: 链接:https://www.allisonthackston.com/articles/bridging_ros_ros2...但是,如果机器人掉落在壁架上,则可能会因为太破损而无法继续使用。...令人惊讶的是,我们在某些地方能达到多近,而在另一些地方仍然能走多远,我认为显示模拟可以达到多远的局限性是为什么SubT Challenge希望同时拥有两者系统和虚拟轨道。...模拟可能会加速,但不会成为发展和创新的灵丹妙药,我认为所有竞争对手都意识到了这些局限性。 SubT虚拟赛道最令人惊奇的事情之一是,所有机器人都完全自主操作,而系统赛道团队在比赛时却没有人员参与。...为什么以这种方式使虚拟轨道更具挑战性? 我认为这是虚拟轨道的定义,描绘属性之一。

    59320

    要小心 JavaScript 的事件代理

    ) { console.log('我被点击了') }) 只要网页中任意一个位置被点击了,都会触发绑定在 document 元素上的点击事件。...于是在上面的示例中,如果父元素 document 想在按钮被点击时做点什么事情,我们很自然地会这么写: document.documentElement.addEventListener('click'...因为用户在按钮上的某个位置点击了,根据用户点击的位置,e.target 可能是下面三种情况: BUTTON 元素 SVG 元素 USE 元素 实际的情况是这样的: ?...因为这种情况对于最上层的 document 来说,得知道每个子元素的情况,本来我只需要关心离我最近的 button 元素就可以了。...依据这个思想和事件冒泡的特点,我们就有了比较好的解决办法:只需要禁止 button 内部元素的事件响应(包括事件冒泡)而只允许 button 元素本身的事件发生就行。有两种方式可以实现这个目的。

    60020

    原创 | codeforces 1451D,一道有趣的博弈论问题

    这两个名字看起来有点怪,我猜可能出题人是老毛子的原因,老毛子的问题当中这两个名字经常出现。也许类似于我们的小红、小明这样的名字吧。...当有人移动不了棋子的时候落败。 现在给出d和k,要求在两人都智商爆表的情况下,谁会获胜。 样例 首先输入一个整数t,表示测试数据的组数。接着输入t行,每行代表一个样例。...每一行输入两个整数,分别代表d( )和k( )。 要求输出胜者的名字。 ? 关于第一个样例的解释: ?...题解 一拿到手,我们会很自然地觉得这是一道博弈论的问题。 实际上看起来也非常像,两个人轮流游戏,包括游戏的一些细节,轮流移动,不能移动者落败,都很符合博弈论问题的特征。...这道题到这里就结束了,我们也可以看得出来,题目本身是不难的,但是解法没有那么容易想到。我个人觉得挺有意思的,希望大家也会喜欢。

    42410

    acwing-2983. 玩具(计算几何)

    大家好,又见面了,我是你们的朋友全栈君。 计算玩具收纳盒中,每个分区内的玩具数量。 约翰的父母有一个烦恼—-约翰每次玩完玩具以后总会将玩具乱扔。...对此,约翰的父母想出了一个对策,用若干个纸板将收纳盒分隔成若干个分区,这样至少扔到不同分区的玩具之间还是能分开的。 下面是一个收纳盒的俯视图示例。...1.jpg 你的任务是,每当约翰将玩具扔进收纳盒中时,确定每个分区中有多少个玩具。 输入格式 本题包含多组测试数据。...接下来 n 行,每行包含两个整数 Ui,Li,表示第 i 个纸板的两端点坐标分别为 (Ui,y1) 和 (Li,y2)。数据保证纸板之间不相交,且按照从左至右顺序依次给出。...接下来 m 行,每行包含两个整数 Xj,Yj,表示第 j 个玩具的位置坐标。玩具的给出顺序是随机的。数据保证玩具不会恰好落在纸板上,也不会落在盒子外。 输入由包含单个 0 的一行结束。

    25720

    技术杂谈:以Web为例,技术中的以人为本的设计

    严格来说,label和placeholder可以是不同的语义。 比如label是告诉你要输入域名,placeholder告诉你号码格式应该是http://xxx.com。...这样一个是语义上的说明,一个是示例。 为什么用a而不是button 有些时候,我们看到网页上的按钮,可能并不是按钮。 显然button是按钮,而a是超链接。...不过实际应用中,有时候我们会发现,有些现实的是按钮的样式,但是实际底层是超链接,为什么要这样呢? 这跟人的操作习惯有关系。...反正在开始的时候吧,为什么叫统一资源定位符,和统一资源ID呢?...其中一个问题是,你很难吧东西分享给别人了 因为地址不会变啊,所以你分享一张图片的时候只能说,打开这个网站首页,然后点击娱乐频道,点击宠物子频道,点击到下面第三页,看到的第四个图,这个就是我想要分享给你的

    24720

    《手把手教你》系列基础篇(五)-java+ selenium自动化测试- 创建首个自动化脚本(详细教程)

    好了废话少说开始说说宏哥今天要做的测试是:打开百度,输入selenium搜索,验证打开链接有没有Selenium官网链接。...获取当前url是不是和输入的一致,假如链接没有发生重定向。 2. 获取当前页面title,是不是我们期待的结果。 3. 在页面元素body找一个特征元素,这个特征元素能够代表是该网站。...我想,也大概只有上面三点依据可以判断我们访问的网站对不对。第一点,有时候不靠谱,不知道你们是否听说过盗链,就是输入一个网站URL,显示的内容是别人的网站,而不是你测试的网站。甚至有链接的重定向出现。...'kw'] 5.定位搜索提交按钮(百度一下),获取xpath表达式://*[@id='su'] 6.在搜索输入框输入:Selenium,点百度一下这个按钮 7.在搜索结果列表去判断是否存在Selenium...到这里,Selenium WebDriver基础篇就结束了,下面的文章,主要是介绍WebDriver的一些常见接口或者方法的实际使用,尽量多介绍一些Selenium方法,为后面的方法封装和框架设计做铺垫

    1.7K40

    引物设计

    以isoform 3为例,点击NM_001098482.1那个超链接,进入下面这个页面。 ?     点击右方的Pick Primers,进入引物设计的Primer Blast页面。...这里的意思是,至少有一条引物跨过了外显子之间的连接处。这样就算有基因组DNA污染了cDNA,也不会被扩增出来,保证定量准确。当然如果有的基因硬是没有内含子,改了这个选项就会报错。 ?     ...这个在线工具的算法也在不断优化,按照近两三年的使用情况来看,没有遇到过失败的。(尤其是使用比较良心和稳定的试剂。在国内我是用天根,在美国是用原名biotool刚更名为bimake的试剂。...好吧你说是软文我也懒得反驳,反正我就用这两家。这里也没有钦定的意思,我也用过Qiagen,Biorad和Thermo的,也能做得很好,但贵。)     ...但请更改下方的Exon junction span的设置为同前文所述一般。 ? 此时拉到最下面,点击Get Primers。

    1.6K41

    快速汇总多个工作簿工作表中的数据(Excel工具推荐)

    有时候我们会遇到这种问题: 很多数据散落在很多工作表或者工作簿中,由于某项工作我们需要将这些数据做个汇总。...然后有一天我在ExcelHome论坛发现了版主写的一个神器,可以自动生成SQL语句,实现跨工作簿/工作表进行数据汇总透视。(点击阅读原文可以找到工具下载链接)下面介绍下该工具的使用方式。...3.可以看到有“插入工作簿名”,“插入工作表名”按钮,这两个按钮的意思是是否需要将工作簿/工作表的名称作为数据透视表的字段,此处我们假设想看各月的汇总情况,因此需要点击“插入工作簿名”。...点击更改数据源-链接属性,弹出以下对话框 将刚才复制的代码粘贴到“命令文本“中,点“确定“。...这个工具的另外一个好处是,数据源字段格式不一定要一样,比方这个工作表中有销售数量,销售额字段,那个工作表中还有“折扣“等字段,对你的结果不会产生影响,只是取你需要的字段即可。

    10.9K10

    逻辑回归 + GBDT模型融合实战!

    关于GBDT的详细细节,依然是可以参考下面给出的链接。..., 损失函数和迭代原理可以参考给出的链接, 回归问题中一般使用的是平方损失, 而二分类问题中, GBDT和逻辑回归一样, 使用的下面这个: 其中, 是第个样本的观测值, 取值要么是0要么是1, 而是第个样本的预测值...下面看例子(该例子来自下面的第二个链接), 假设我们有下面3条样本: ?...对于输入x,假设他落在左树第二个节点,编码[0,1,0],落在右树第二个节点则编码[0,1],所以整体的编码为[0,1,0,0,1],这类编码作为特征,输入到线性分类模型(LR or FM)中进行分类。...训练完了GBDT模型之后, 我们需要预测出每个样本落在了哪棵树上的哪个节点上, 然后通过one-hot就会得到一些新的离散特征, 这和原来的特征进行合并组成新的数据集, 然后作为逻辑回归的输入,最后通过逻辑回归模型得到结果

    1.6K40

    穿了好几个马甲,差点没认出来是二分查找

    袁厨:那是,这是我今天从咱们江边买的,之前一直去菜市场买,那里的老贵了,你猜猜我今天买的多少钱一条。 店小二:之前的鱼,30个铜板一条,今天的我猜26个铜板。 袁厨:贵了。 店小二:还贵呀!...为什么我们可以通过这个进行判断呢?...那么当left 和 mid 落在不同数组时,为什么不能是 left 在 数组2 ,mid 在 数组1 呢?...3: 输入:nums = [1], target = 0 输出:-1 题目解析 这个题目的解答方法,咱们在上面已经有所描述,下面我们来看一下下面这个例子的代码执行过程吧.大家可以结合代码和动图进行理解...[left] 则 left ++,那我们此时会不会错过目标值呢?

    57320

    前端系列教学 - HTML基础

    简单说元数据就是告诉搜索引擎这个网页是干什么的,是谁写的,等等。 在刚开始我想过讲解这一部分,目前只要先记住下面这个写法就可以了。这句代码告诉浏览器 HTML 文档使用 Unicode 字符编码。...或者想表示金钱符号: 在上面我使用了两种不同的方式输入同一个特殊符号。 由于特殊字符实在是太多了,大家可以根据需求自己去查找。...所有如果使用 相对路径 的话,只要我的项目目录不发生结构性的改变,我的项目在哪个设备上都不会出问题。 ## 列表 在 HTML 中,我们可以定义 无序列表,有序列表 和 定义列表。...在外观上它和 text 类型 一样,也有同样的属性,但是密码框输入的字符是不可见的。 可以发现我在value属性里设置了值,但最后在密码框里显示的却是星号。...在学习前端的过程中,知道去哪里查文档,问问题是很重要的。下面我就推荐一些对初学前端很有帮助的网页吧。

    7.2K110

    译文-MVVM系列-RxSwift简介及Reactive Programming可以做的事情

    网上已经有很多文章介绍reactive和RxSwift,也有很多教程教大家怎么处理Rx中的各种状况(文本后面会放一些相关链接)。...所以这里不打算再写一篇教程去解释streams和observables的原理。我想提供一个简单、清晰、不涉及理论知识的总结,介绍用RxSwift可以做什么,以及为什么要用RxSwift。...下面开始第一部分! Part 1: Data Binding, control events and gesture recognizers 数据绑定,控制事件和手势识别 1....我曾经写过关于为什么我从来不用storyboards,如果你和我一样(不用storyboard),下面代码看起来就会非常熟悉: var button = UIButton() override func...(你可以在文末的链接中找到更多相关资料)。

    1.6K20

    百度 SEO:不是玄学,是科学与艺术的 “恋爱”

    例如,一个美食博客文章标题可以是“超详细北京烤鸭制作教程 - 舌尖上的中国传统美食”,其中“北京烤鸭制作教程”就是核心关键词。在网页的元描述(Meta Description)中自然地融入关键词。...不过不要为了提高密度而堆砌关键词,要让关键词自然地融入内容中。比如在介绍北京烤鸭制作步骤的段落中,可以适当提及“制作北京烤鸭的关键步骤”等语句。对图片的ALT属性添加关键词。...内容结构优化文章要有清晰的结构,包括开头、中间主体部分和结尾。开头部分可以通过提出问题、引用有趣的事实等方式吸引用户的注意力,如“你知道为什么北京烤鸭能成为国宴菜品吗?”。...主导航应该包括网站最重要的几个板块,如对于电商网站,导航可以包括“首页”“产品分类”“购物车”“我的订单”“客服中心”等。并且导航栏的文字要准确反映所链接页面的内容。提供面包屑导航。...确保网站在不同尺寸的移动设备(如手机、平板电脑)上都能自适应显示,文字排版合理,图片不会变形,按钮操作方便。

    2900

    接口测试之Postman使用全指南(原来使用 Postman测试API接口如此简单)

    大家好,又见面了,我是你们的朋友全栈君。 为什么要做接口测试? 接口的由来: 连接前后端以及移动端。 因为不同端的工作进度不一样,所以需要对开始出来的接口进行接口测试。...当然我个人使用一般是不登录的,因为登录之后会自动将你的测试历史数据保存到账户里,你可以登陆网页端进行查看。...所以我每次测试之后会将数据(Case)保存在本地,下次使用或者换设备的情况下将数据拷贝过来又可以继续使用了。 下面正式开始介绍如何使用Postman吧。 为什么选择Postman?...区域输入 链接 3、点击 “Send”按钮 4、你将看到下方返回200状态码 5、在正文中应该有10个用户结果,表明您的测试已经成功运行。...Step 3) 输入所需的集合名称和描述,然后单击create。 现在已经创建了一个集合。 Step 4 ) 和前面的Get请求一样,点击保存。

    2.3K10
    领券