I'd like to add some accessibility features to my Access forms, for users that have difficulty with the standard 11pt-font, white-background, black-text set-up.
Windows itself has a bunch of Display Settings options for altering window font sizes, background colours etc, but these don't cover Access forms altogether well - they'll change the colour of items where system colours are used, but font face or size of labels, input boxes, data grids etc can't be changed this way as they're not connected to those settings. The Datasheet settings under File -> Options seem to have no effect on datasheet forms (or subforms).
I can't find any accessibility options in Access, not so much as a Zoom function (1998 called, it wants its GUI back, etc etc). It seems ridiculously excessive to have to fire up the VBA editor and do something like:
Public Sub AccessbilityBtn_Click()
Me.Detail.BackColor = RGB(whatever)
Me.HeadingLbl.FontSize = 18
Me.HeadingLbl.Width = 'whatever accomodates bigger text
Me.HeadingLbl.Height = 'whatever accomodates bigger text
Me.FieldLabel1.FontSize = 14
Me.FieldLabel1.Width = 'whatever accomodates bigger text
Me.FieldInput1.Width = 'whatever accomodates bigger text
'... to infinity and beyond ...
End Sub
Or to craft FormName_BigText versions of every single form and replicate the entire behaivour of my entire system.
So, does Access have accessibility options? If so, where are they? And can they be called from VBA? If not, how can accessibility options be implemented into Access forms?
Related
Is there a way to change the font of Time4J CalenderPicker in css-style?
I needed a Persian DatePicker in my program so i used Time4J CalenderPicker.
using this code i could change only the font of cells:
CalendarPicker<PersianCalendar> MyDatePicker = CalendarPicker.persianWithSystemDefaults();
MyDatePicker.setCellCustomizer(
(cell, column, row, model, date) -> {
cell.setStyle("-fx-font-family: MyFont;");
}
);
I tried this code but nothing changed:
MyDatePicker.setStyle("-fx-font-family: MyFont;");
But i want to change the font of hole CalendarPicker.
In order to apply the changes, you need to use the following code and set new css styles for calender picker and applying the customizations.
private CalendarPicker<PersianCalendar> MyDatePicker = CalendarPicker.persianWithSystemDefaults();
MyDatePicker.getStylesheets().add("/MyCSS-Style.css");
The following gif, demonstrates my customizations.
The calendar picker itself is only the combination of a text editor and a popup button (bundled in a HBox). However, the calendar view is another component which pops up if users press the button. And this component whose font you wish to change is not yet publicly accessible (with the exception of the cells via a special customizer).
I agree that this should be more flexible. Therefore I have opened a new issue to track this request for enhancement.
Feel free to fork Time4J and do your experiments and submit a pull request on time4j-github. Actually I am busy with other things but can look deeper then.
I am developing a web application in which we have generated labels with barcode. Now we need to read these labels during packing stage.
I understand that Barcode scanners work as keyboard entry so I have created a View with text box to read the barcodes from labels. When I scan any label its reading barcode and automatically directing to some search page.
View
<td>
#Html.TextBoxFor(model => model.StyleNumber)
#* <input type = "text" style="border:0px;" value = "" />*#
</td>
There are 2 issues :
Automatically append row with a text box with for each label
Not to direct to some other page and have all the scanned labels on the same page to be read and used for further processing.
I have tried a lot but didn't find anything concrete. Please advise.
I'd like to suggest to move in this direction:
Obtain technical specification of barcode reader
Barcode should add some "begin and ending char" before and after the barcode read
Example if you barcode in 123456 reader can add 123456/n
where /n is new line or something else
You can monitor keydown of text field and monitor when text change and you detect ending character, at this point you can submit the form that contain your textbox. You can use javascript/Jquery
http://www.aaronkjackson.com/2011/02/quick-tip-use-jquery-to-submit-a-textbox/
This example if the first that I've found but it can be improved for example sumitting a form without button
You can perform barcode validation on server side
At this point you can process barcode on server side and return void from controller method. Y
You can improve solution providing some better user experince for example validating barcode client side or hide the text control or submit data using jquery insted of form like this:
How to send data in jquery.post to mvc controller which use ViewModel as parameter?
Pay attention on setting focus over control otherwise if user ckick mouse out of text control the text read form barcode reader isn't inserted into textbox.
I think that could be possibile develop some ActiveX but this is more invasive solution
HTML5 is your answer. But it will work in HTML5 compatible browser only. If you are targeting older version of browser you need to create Activex which is pretty old and not secure.
There is a jquery plugin for reading QR and Barcode which is worth looking into it.
http://dwa012.github.io/html5-qrcode/
Another way is doing capturing it on mobile devices with HTML5
http://www.html5rocks.com/en/tutorials/getusermedia/intro/
There is a paid option also.
http://www.visionsmarts.com/products/barcode-shell.html
I am to produace printable report of a web page having control datalist which dispay data
in two coumns.
Each cell of datalist columns has got some data, that i need to produce on a 8.5X11 size
page with the following dimaesions which client has given me.
Dimensions for Custom Label Fields:
Top Margin: 0”
Side Margin: 0”
Vertical Pitch: 3”
Horizontal Pitch: 4”
Page Size: 8.5 x 11
Label Height: 3”
Label Width: 4”
Number Across: 2
Number Down: 3
PAGE Top Margin: 2”
PAGE Side Margin: .5”
This creates the backwards L shape that allows our margins for perforation.
And client wants me to produce 6 cells on each specified size page
each label on the page will acquire 1 cell, perferation are there on the page which separates
the all 6 labels on the page.
Any how i managed to produce the specied dimensions on the perticular size paper for printing.
But some times, it goes abberant, like browser don't support page break dont work or some CSS
issues or alignemnt get fail.
Which all annoyed to the client because he was saying if near future we slightly change the lable size or manyfactuing company
chang paper size then what, and he told if this keep heppening then we may stuck some
time. So he was telling me for a windows application, but i never made a report in windows
aplication before. Now, i am thinking that, fro windows appliaction i have to set dimensions
too. Then what is the purpose to have a windows application.
Please suggest me what should i do to make this report work, if i should start making a
windows appiation to form that report then what should be my approach and what controls
should i use, and how should i make it dynamic so that if in near future clients page size or label size slightely
get changed then he can print all successfully.
IF any alternet best idea there exist then pelase propose.
I would recommend that you obtain the information from the web page (either using an API or a good scraper) and then format it into a PDF using a good reporting toolkit for printing purposes.
Using CSS and relying on a browser for pixel perfect positioning is a bad idea in general.
I'm maintaining an ASP.NET site where users can log on to register some set of data (for statistical purposes). One user registers data for a set of units, and for each of these units a set of forms are to be filled out (with a handful of fields in each form, but that doesn't matter here). One scenario is that a user has 12 units, and in each of these units there is 25 forms to be filled, meaning a total of 300 forms.
The ASP.NET page for registering these data is made the following way: each form is in a panel that can be collapsed using an AjaxControlToolkit CollapsiblePanelExtender, and all forms in a unit is inside another panel that also can be collapsed. The result is that you have a tree view-like structure with the units on the top, and under each unit you can expand a set of forms, and further each form can be expanded to fill data (the page is loaded with all panels collapsed by default).
The page is generated completely dynamically (as forms can be added in a database), and for generating the CollapsiblePanelExtenders I have the following code:
private CollapsiblePanelExtender GenerateCollapsiblePanelExtender(string id, Panel headerPanel, Panel contentPanel)
{
CollapsiblePanelExtender collapsiblePanel = new CollapsiblePanelExtender();
collapsiblePanel.ID = id + ID_COLLAPSIBLE_PANEL_POSTFIX;
collapsiblePanel.TargetControlID = contentPanel.ID;
collapsiblePanel.CollapseControlID = headerPanel.ID;
collapsiblePanel.ExpandControlID = headerPanel.ID;
collapsiblePanel.Collapsed = true;
collapsiblePanel.BehaviorID = collapsiblePanel.ID + ID_BEHAVIOUR_POSTFIX;
return collapsiblePanel;
}
With one user having 12 units each with 25 forms, this means a total of 312 CollapsiblePanelExtenders. As I said, they are all set to be collapsed by default, but here's the problem:
When the page loads, they all appear to be expanded, and then the browser "starts collapsing them". This however takes a very long time (in Firefox I even get a warning about an unresponsive script, IE and Chrome only takes forever but without the warning). When all the "collapsing" is complete it works smooth to open and close single panels, but users have complained about the extremely slow initial loading.
So my question is simple: is there a way to optimize this so that the loading goes smoother? Is it for instance possible to only load the header panels in each CollapsiblePanelExtender initially, and then load the content panel asynchronously in some way?
One final clarification:
I know I could simply change the design of the page to only include one unit and thus reducing size of the contents drastically, but I hope to avoid this (users prefer the way with everything in one page). It would also mean a rather large change to the logic of the page (yes, I know - it's a poor code base at that point)
After asking some more around other places, I finally managed to solve this issue. The solution was to skip the CollapsiblePanelExtenders altogether, and instead use jQuery to handle the collapsing/extending.
In my structure, all header panels use the css class HeaderPanel, and all content panels use the css class ContentPanel (all of these are hidden by default). I can then use the following script to handle all the collapse/expand logic:
<script language="javascript">
$(document).ready(function() {
$("div.HeaderPanel").toggle(
function() {
$(this).next("div.ContentPanel").show("slow");
},
function() {
$(this).next("div.ContentPanel").hide("slow");
});
});
</script>
The solution was really quite simple, and it works like a charm! The collapsing/extending is soo much smoother and nicer than what it looked like when I used the CollapsiblePanelExtenders, and the page loads really fast as well :)
I have a flex 3 application that creates an Image from a canvas which the user draws on. I use the ImageSnapshot class to create the image
var imageSnap:ImageSnapshot=ImageSnapshot.captureImage(myCanvas);
var imageByteArray:ByteArray=imageSnap.data as ByteArray;
I want the user to be able to print or save the image. I can use the following code to print the image but flex does not provide good control over printing across multiple pages
var printJob:FlexPrintJob=new FlexPrintJob();
printJob.start();
printJob.addObject(myCanvas, FlexPrintJobScaleType.SHOW_ALL);
I would like to display the image in a browser window so that the user could print it using the built in browser functionality or right click on the image and save it. Can this be done without requesting server side code to do it?
I know that flash player 10 and flex 4 allow you to save files locally but for now I am stuck with player 9 and flex 3
You can still use the new features of FileReference (the save() and load() methods) in Flex 3 as long as the application is running in Flash Player 10. But if you are definitely stuck with Flash Player 9 then you will need to push the image up to the server first. If you are looking for a good way to push that data up to the server, please reference my solution in this question:
Flex: Render an unrealized UIComponent to BitmapData?
I don't believe you can do this, as it would violate the sandbox. For example, if this worked, it means you could put arbitrary code (analogous to an image) on the user's machine without their consent or knowledge.
I'm not sure if this will work, but try this:
Show a link to the image (file://path/to/image/img.ext) and set window.htmlLoader.navigateInSystemBrowser = true;