我是一名盲人大学生,正在介绍专注于用户界面设计的编程课程。该类正在使用Processing,这是完全无法访问的。我正在寻找一种语言,这种语言可以让我在没有拖放的情况下创建GUI,并且希望能够足够聪明地完成大部分布局,而不必强迫我指定像素的控制位置。
我知道Perl,Java,C / C ++,c#和HTML。我正在考虑创建HTA应用程序。我唯一的要求是该语言必须在MS Windows下运行,并且不得使用SWING或GTK作为底层工具包。
答案 0 :(得分:3)
我会说xaml是个不错的选择:
也许如果你让我们知道你需要什么语言,我们可以给你更好的建议。
答案 1 :(得分:2)
作为盲人程序员说:
总之,WPF很不错,但请确保您的屏幕阅读器适用于此类应用。下一个最好的选择可能是WinForms。如果您喜欢Layout By Code,那么请使用它,但如果这是您想要的就业技能,请记住这一点。
答案 2 :(得分:1)
看看XAML。我认为对于现代Windows和Web UI创建者来说,这可能是一个良好的开端。
答案 3 :(得分:1)
Tcl / Tk将完全按照你的意愿行事。 打包和网格布局管理器基于小部件的逻辑相对位置。
虽然Tk的“原生”语言是Tcl,但许多其他语言都有Tk绑定。
label .l -text "this is a label"
button .b -text 'quit' -command "exit"
pack .l .b
答案 4 :(得分: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设计原型分享。
答案 5 :(得分:0)
我可能会尝试使用C#。即使不使用拖放功能,它也具有与Windows常用控件等相当友好的界面。只是不要像平时那样使用设计师和代码。
答案 6 :(得分:0)
我不用Java编程,但我知道Java提供了UI的编程创建,并提供了一些很棒的布局管理组件(Native to Java而不需要SWING)。我第一次接触布局经理回到X11的旧时代,使用X Toolkits(任何人都记得Motif,OpenLook,HP Open View?),Java似乎采用了类似的技术。
您可以从简单的布局管理器创建Windows,Dialogs和Menus。
答案 7 :(得分:0)
我自己也看不到任何曾经被盲人用户审核过的任何事情,我认为我的答案不会太彻底。然而,我的第一直觉是,某种生成HTML的动态Web服务器体系结构(如C#,PHP或ColdFusion)将适合您处理大多数布局的描述,而无需您以像素为单位指定控件位置。当然可以通过CSS以像素为单位指定控制位置,但这不是必需的。我知道HTML也有明确的可访问性标准,而我不确定其他类型软件的可访问性标准的状态。
答案 8 :(得分:0)
你可以使用javascript和html。有一个处理javascript的端口,所以你知道它足够强大,你的课程将覆盖的东西。你可以在不知道它的外观的情况下编写html。实际上,这是创作html的首选方式。
javascript的主要缺点不是javascript本身,而是浏览器dom。这是控制html元素的接口。但是,像jquery,mootools或dojo这样的库可以解决大部分问题。
至于accessiblity,请查看WAI ARIA opera's intro to WAI ARIA。
WAI ARIA是一种构建丰富的javascript应用程序,同时与屏幕阅读器配合使用的方法。这很酷。我没有看到更多的工作和热情使得Web堆栈可以在任何其他编程堆栈中访问。