可以采取哪些步骤来使用 ASP.NET Webforms 生成语义、可访问、符合标准的客户端输出?
据我所知,可能无法在 ASP.NET Webforms 中将客户端与服务器端代码解耦。可以采取哪些步骤来在此框架上创建一个符合网络标准的网站?
我特别关心如何在禁用 JavaScript 的情况下使网站可访问,并符合 WCAG2 的 AA 级一致性。
是否可以实现内容 (HTML)、表示 (CSS) 和行为 (JavaScript) 之间的分离?
I understand that it may not be possible to decouple the client-side from the server-side code in ASP.NET Webforms. What steps can be taken to produce a website on this framework that complies to web standards?
I am particularly concerned with making the site accessible with JavaScript disabled, and compliant to WCAG2 at conformance level AA.
Is it possible to achieve a separation between content (HTML), presentation (CSS), and behaviour (JavaScript)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这是可能的,但在 ASP.Net WebForms 中并不那么容易:
It's possible, but it's not that easy in ASP.Net WebForms:
您可以继承并重写 Render 方法,但对于更复杂的控件,您可能不想在存在更好的替代方法时投入时间。
You can inherit and override the Render method, but for more complex controls you're probably not going to want to put in the time when better alternatives exist.
如果 MVC 或 .NET4 不是选项,请查看 CSS 友好的控制适配器。
http://cssfriend.codeplex.com/
If MVC or .NET4 aren't options, take a look at the CSS-Friendly Control Adapters.
http://cssfriendly.codeplex.com/
如果您不太热衷于 ASP.NET,您也可以尝试一下 ASP.NET MVC。 MVC 与 ASP.NET 有许多相似之处。但最好的部分是您可以完全控制呈现给浏览器的 HTML 输出。
如果您没有选择 MVC 的选项,并且您对 ASP.NET 服务器控件的默认输出不满意,则可以忽略 ASP.NET 服务器控件的 Render 方法。请参阅渲染 ASP.NET 服务器控件。
如果子控件是像 DataGrid 这样的复合控件,您还可以覆盖子控件的输出。
希望这有帮助。
If you are not really hell bent on ASP.NET, you could also give a try on ASP.NET MVC. MVC has many similarities to ASP.NET. But the best part is you have full control over the HTML output that is rendered to the browser.
If you don't have an option of choosing MVC, and you are not happy with the default output of the ASP.NET server control, you can ovveride the Render method of the ASP.NET server control. Please refer to Rendering an ASP.NET Server Control.
You can also override the output of the child controls if its a composite control like DataGrid.
Hope this helps.