11

我是一名盲人大学生,正在学习侧重于用户界面设计的编程课程。该类正在使用处理,这是完全无法访问的。我正在寻找一种语言,它允许我无需拖放即可创建 GUI,并希望它足够聪明,可以完成大部分布局,而不会强迫我以像素为单位指定控制位置。

我知道 Perl、Java、C/C++、c# 和 HTML。我正在考虑创建 HTA 应用程序。我唯一的要求是该语言必须在 MS Windows 下运行,并且不能使用 SWING 或 GTK 作为底层工具包。

4

9 回答 9

3

我会说 xaml 将是一个不错的选择:

  • 不需要像素操作
  • 代码背后的项目功能
  • 以后可以添加像素更改以进行控制
  • 有很多关于如何使用它的文档

也许如果你告诉我们你需要什么语言,我们可以给你更好的建议。

于 2009-01-20T04:37:36.610 回答
2

作为一个盲人程序员说:

  • C# + WinForms:您可以手动创建代码并使用布局管理器或在头脑中计算尺寸,或者如果您使用 JAWS 屏幕阅读器,那么在 WinForms 设计器中会有一些脚本可以帮助您。
  • C# + WPF:在这里你用 XML 定义你的 UI,但你的头脑更复杂。当然看看这个,因为它是一个非常好的解决方案。目前 WPF 的另一个问题是并非所有屏幕阅读器都支持这种新技术。
  • www.EmpowermentZone.com 的 Jamal Mazrui 创建了一个名为“Layout By Code”的东西,但我没有这方面的经验。
  • HTML + Javascript 会很好,但我怀疑你的课程是否允许这样做。
  • WXWidgets:我对这个跨平台、多语言的 UI 工具包没有太多经验,但我相信它有布局管理器,因此我认识的几个盲人程序员都在使用它。
  • 最后,我过去常常手动设计 Win32 资源脚本,在脑海中计算大小(没有布局管理器)。如果你想走这条路,这当然是可以实现的。

总而言之,WPF 不错,但请确保您的屏幕阅读器可以与此类应用程序一起使用。下一个最佳选择可能是 WinForms。如果你喜欢 Layout By Code 然后使用它,但如果这是你想要的就业技能,那么请记住这一点。

于 2009-01-20T13:51:51.890 回答
1

看看 XAML。我认为这对于现代 Windows 和 Web UI 创建者来说都是一个好的开始。

于 2009-01-20T03:57:16.067 回答
1

Tcl/Tk 将完全按照您的意愿行事。包和网格布局管理基于小部件的逻辑相对位置。

尽管 Tk 的“本地”语言是 Tcl,但许多其他语言都有 Tk 绑定。

label .l -text "this is a label"
button .b -text 'quit' -command "exit"
pack .l .b
于 2009-01-20T03:58:05.940 回答
1

在 codeplex 上查看这个项目。它可以帮助你(作为处理和java的替代品) http://bling.codeplex.com/

ling 是一个基于 C# 的库,用于在 Microsoft 的 WPF/.NET 上轻松编程图像、动画、交互和可视化。Bling 面向设计技术人员,即有时会编程的设计师,以帮助快速制作丰富的 UI 设计理念的原型。学生、艺术家、研究人员和业余爱好者也会发现 Bling 作为快速表达想法或可视化的工具很有用。Bling 的 API 和结构针对丢弃代码的快速编程进行了优化,而不是生产代码的仔细编程。

Bling 具有以下功能,有助于快速制作丰富的 UI 原型:

* Declarative constraints that maintain dynamic relationships in the UI without the need for complex event handling. For example, button.Width = 100 - slider.Value causes button to shrink as the slider thumb is moved to the right, or grow as it is moved to the left. Constraints have many benefits: they allow rich custom layouts to be expressed with very little code, they are easy animate, and they support UIs with lots of dynamic behavior.
* Simplified animation with one line of code. For example, button.Left.Animate.Duration(500).To = label.Right will cause button to move to the right of label in 500 milliseconds.
* Pixel shader effects without the need to write HLSL code or boilerplate code! For example, canvas.CustomEffect = (input, uv) => new ColorBl(new Point3DBl(1,1,1) - input[uv].ScRGB, input[uv].ScA); defines and installs a pixel shader on a canvas that inverts the canvas's colors. Pixel shading in Bling takes advantage of your graphics card to create rich, pixel-level effects.
* Support for multi-pass bitmap effects such as diffuse lighting.
* An experimental UI physics engine for integrating physics into user interfaces! The physics supported by Bling is flexible, controllable, and easy to program.
* Support for 2.5D lighting.
* A rich library of geometry routines; e.g., finding where two lines intersect, the base of a triangle, the area of triangle, or a point on Bezier curve. These routines are compatible with all of Bling's features; e.g., they can be used in express constraints, pixel shaders, or physical constraints. Bling also provides a rich API for manipulating angles in both degrees and radians.
* And many smaller things; e.g., a frame-based background animation manager and slide presentation system.
* As a lightweight wrapper around WPF, Bling code is completely compatible with conventional WPF code written in C#, XAML, or other .NET languages.

Bling 是由 Sean McDirmid 和朋友创建的一个开源项目,用于帮助设计快速原型。我们使用 Bling 来提高我们的生产力,并希望与其他 WPF UI 设计原型师分享它。

于 2009-06-17T10:34:16.643 回答
0

我可能会尝试使用 C#。即使不使用拖放,它也对 Windows 常用控件等具有相当友好的界面。只是不要像往常一样使用设计器和代码。

于 2009-01-20T03:58:19.963 回答
0

我不使用 Java 编程,但我知道 Java 提供了 UI 的编程创建并提供了一些出色的布局管理组件(Java 原生而不需要 SWING)。我第一次接触到 Layout Managers 是在 X11 的旧时代使用 X Toolkits(有人记得 Motif、OpenLook、HP Open View 吗?),而 Java 似乎也采用了类似的技术。

您可以从简单的布局管理器创建窗口、对话框和菜单。

于 2009-01-20T04:04:44.680 回答
0

我自己有视力并且没有在任何已经过可访问性审核或盲人用户大量访问的内容上进行过密切合作,我认为我的回答不会非常彻底。然而,我的第一直觉是说某种生成 HTML 的动态 Web 服务器架构(如 C#、PHP 或 ColdFusion)将适合您为您处理大部分布局的描述,而无需您以像素为单位指定控制位置。当然可以通过 CSS 以像素为单位指定控制位置,但这不是必需的。而且我知道 HTML 也有明确定义的可访问性标准,而我不确定其他类型软件的可访问性标准的状态如何。

于 2009-01-20T04:06:19.793 回答
0

您可以使用 javascript 和 html。有一个处理 javascript 的端口,因此您知道它对于您的课程将涵盖的内容来说已经足够强大了。您可以在不知道它的外观的情况下创作 html。事实上,这是编写 html 的首选方式。

javascript 的主要缺点不是 javascript 本身,而是浏览器 dom。那是控制 html 元素的接口。但是,像 jquery、mootools 或 dojo 这样的库可以解决大部分问题。

至于可访问性,请查看WAI ARIA 以及歌剧对 WAI ARIA 的介绍.a

WAI ARIA 是一种构建丰富的 javascript 应用程序同时与屏幕阅读器配合得很好的方法。这很酷。我没有看到更多的工作和热情投入到使 Web 堆栈在任何其他编程堆栈中可访问。

于 2009-01-20T04:49:27.630 回答