小编Bar*_*kin的帖子

HTML表格中隐藏的咏叹调标签(用于屏幕阅读器辅助功能)

在我的网页中,我需要创建一个表,该表具有根据某些用户配置可见或隐藏的标题行.此表也需要完全可访问(具体来说,因为表可能很长,我希望读取行/列标题的快捷方式可以工作).我只有ChromeVox进行测试(我将详细介绍与我发现的博客文章中其他读者的行为).

我目前的布局与此类似:

CSS:

.table-header-show {
}

.table-header-hide {
  display: none;
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<table>
  <!-- ${show} is used to choose the right class the user configuration -->
  <thead class="table-header-${show}">
    <tr>
      <th>Name</th>
      <th>Value 1</th>
      <th>Value 2</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>John Doe</td>
      <td>Value 1a</td>
      <td>Value 2a</td>
    </tr>
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

当标题可见时,根本没有问题.标题隐藏后,取决于屏幕阅读器是否读取这些标签:

  • 我想在屏幕阅读器上使用常规导航*时跳过标题行,但是使用标题行来宣布列标签
  • 使用ChromeVox,第一个工作(跳过导航),但第二个失败(隐藏的行不用于标记列)
  • 再次使用ChromeVox,将隐藏移动声明为style属性而不是a class,会导致所需的行为都起作用
  • 根据我发现的博客文章,屏幕阅读器display: none有时会忽略内容,有时他们不会 - 所以我不确定我可以依靠这种隐藏来保证我的目的是可靠的(隐藏导航,用于标签)

那么,我如何以跨浏览器阅读器的方式实现我想要的行为呢?

  • AFAIK,屏幕外/ 1px大小的隐藏问题(如此处所示)是,如果我为标题行执行此操作,那么将始终读出所有列标题...

html css accessibility html-table wai-aria

13
推荐指数
1
解决办法
4404
查看次数

NCurses中的鼠标移动事件

我想知道NCurses中是否存在鼠标移动事件这样的事情,以及是否有办法捕获它们.在与鼠标接口之后(来自NCurses编程HOWTO),似乎通过启用REPORT_MOUSE_POSITION调用中的位mousemask,可以确实捕获鼠标移动事件.

所以,我试过了,它似乎没有用.我有这样的事情:

int ch, count=0;
mmask_t old;

initscr ();
noecho ();
cbreak ();
mousemask (ALL_MOUSE_EVENTS | REPORT_MOUSE_POSITION, &old);
keypad (stdscr, TRUE);

while ((ch = getchar ()) != 'q')
{
  count++;
  if (ch == KEY_MOUSE)
  {
     MEVENT event;
     assert (getmouse (&event) == OK);
     mvprintw (0, 0, "Mouse Event!\n");
  }
  mvprintw (1, 1, "Event number %4d",count);
}

...
Run Code Online (Sandbox Code Playgroud)

我预计,当我移动鼠标光标时,我会看到事件计数器增加.但事实并非如此.我也尝试在鼠标按钮1关闭时移动它以查看是否生成"拖动"事件,它也没有做任何事情.问题是,如果它只是我的终端模拟器的问题?或者我可能误解了NCurses认为的鼠标移动事件?收到了所有其他鼠标事件(我可以在控制台中使用鼠标操作程序).

我尝试过gnome-terminal,xterm和其他一些东西.我还尝试了一个文本环境(没有X),转到我的linux机器的tty(Fedora 15,Ctrl + Alt + F2),但是没有用.

最后,假设我确实做到了这一点并且应该报告那些事件,那么鼠标运动evenet 的bstate领域是什么MEVENT

提前谢谢了!

c linux terminal ncurses mouseevent

11
推荐指数
1
解决办法
7623
查看次数

Tinkerpop &amp; Python - 通过 gremlin 设置数组属性

我将 JanusGraph 与标准 python gremlin 绑定一起使用,我想float[]在顶点/边上设置一个属性。但是,PythonTinkerpop 驱动程序似乎无法做到这一点。

例如,下面是一个直接在 Groovy 中运行的脚本示例:

val = [1.2, 3.4, 5.6]
_client.submit("g.V(4200).property('a', %s as float[])" % val).all().result()
Run Code Online (Sandbox Code Playgroud)

这是使用 gremlin python 库时失败的代码:

val = [1.2, 3.4, 5.6]
g.V(4200).property('a', val).next()
Run Code Online (Sandbox Code Playgroud)

错误在哪里:

GremlinServerError: 500: Property value [[1.2, 3.4, 5.6]] is of type class java.util.ArrayList is not supported
Run Code Online (Sandbox Code Playgroud)

该错误可能是因为请求是由 python 驱动程序在 GraphSON 中序列化的 - 并且 GraphSON 支持具有不同类型元素的数组,因此场景背后的 Java 代码将值读取为 a java.util.ArrayList,而实际上无法转换为float[].

问题是 - 除了编写显式查询字符串之外,是否有任何理智的方法可以做到这一点?

python gremlin tinkerpop tinkerpop3 janusgraph

5
推荐指数
1
解决办法
991
查看次数

Scala Enumerations中的错误(?)类型匹配

我有一个枚举类来表示值的类型.该类的代码非常简单:

object Type extends Enumeration {
  type Type = Value
  val tInt, tBoolean, tString, tColor, tFont, tHAlign, tVAlign, tTextStyle, tUnknown = Value;

  def fromValue (value:Any) : Type.Type = {
    value match {
      case a:Int                 => tInt
      case a:Boolean             => tBoolean
      case a:Color               => tColor
      case a:Font                => tFont
      case a:HAlign.HAlign       => tHAlign
      case a:VAlign.VAlign       => tVAlign
      case a:TextStyle.TextStyle => tTextStyle
      case _                     => tUnknown
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我在哪里列举了一些东西:

object VAlign extends Enumeration {
  type VAlign = Value
  val top, middle, …
Run Code Online (Sandbox Code Playgroud)

enumeration scala

3
推荐指数
1
解决办法
933
查看次数

测试是否按下了javax.swing.JButton

我想检查某个javax.swing.JButton(常规按钮)是否被按下(在它被释放之前).是否有任何选项可以检查按钮是否已关闭?

最简单的解决方案是添加一个MouseListener响应鼠标单击和释放事件的解决方案.但是,这并不包括通过Enter键或任何其他方式激活按钮的情况.我不想通过键盘或其他方式禁用激活鼠标 - 我只想知道何时按下它而不限制它的行为.

我尝试了所有不同的事件,只有两个响应按下按钮的是ActionPreformed(ActionEvent)和StateChanged(ChangedEvent)事件.ActionPreformed每次点击执行一次,这意味着只有在按下并释放按钮后才会执行,所以这并不好.当我点击一个按钮时,StateChanged确实被调用了几次,而当我发布它时,它被调试了好几次.但是,事件对象仅包含有关源窗口小部件(按钮)的信息,并且不包含有关状态更改本身的信息.这可以防止我们想要捕获哪些事件.

提前致谢!

java swing state pressed jbutton

2
推荐指数
1
解决办法
6475
查看次数